From e333e5ac98bfc02384de74a5a8a95f0287dbc537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:35 -0400 Subject: [PATCH 0001/1709] New translations graph-node.mdx (German) --- .../src/pages/de/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/de/indexing/tooling/graph-node.mdx b/website/src/pages/de/indexing/tooling/graph-node.mdx index 3c4cb903b165..81b54b23959c 100644 --- a/website/src/pages/de/indexing/tooling/graph-node.mdx +++ b/website/src/pages/de/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ Eine vollständige Datenbeispiel-Konfiguration für Kubernetes ist im [indexer r Wenn es ausgeführt wird, stellt Graph Node die folgenden Ports zur Verfügung: -| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP Server
(für Subgraph-Abfragen) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(für Subgraphen-Abonnements) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(zum Verwalten von Deployments) | / | \--admin-port | - | -| 8030 | Status der Indizierung von Subgraphen API | /graphql | \--index-node-port | - | -| 8040 | Prometheus-Metriken | /metrics | \--metrics-port | - | +| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | +| ---- | ------------------------------------------------ | ---------------------------------------------- | ------------------ | ----------------- | +| 8000 | GraphQL HTTP Server
(für Subgraph-Abfragen) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(für Subgraphen-Abonnements) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(zum Verwalten von Deployments) | / | \--admin-port | - | +| 8030 | Status der Indizierung von Subgraphen API | /graphql | \--index-node-port | - | +| 8040 | Prometheus-Metriken | /metrics | \--metrics-port | - | > **Wichtig**: Seien Sie vorsichtig damit, Ports öffentlich zugänglich zu machen - **Verwaltungsports** sollten unter Verschluss gehalten werden. Dies gilt auch für den Graph Node JSON-RPC Endpunkt. @@ -330,7 +330,7 @@ Datenbanktabellen, die Entitäten speichern, scheinen im Allgemeinen in zwei Var Für kontoähnliche Tabellen kann `graph-node` Abfragen generieren, die sich die Details zunutze machen, wie Postgres Daten mit einer so hohen Änderungsrate speichert, nämlich dass alle Versionen für die jüngsten Blöcke in einem kleinen Teil des Gesamtspeichers für eine solche Tabelle liegen. -Der Befehl `graphman stats show ` zeigt für jeden Entitätstyp/jede Tabelle in einem Einsatz an, wie viele unterschiedliche Entitäten und wie viele Entitätsversionen jede Tabelle enthält. Diese Daten beruhen auf Postgres-internen Schätzungen und sind daher notwendigerweise ungenau und können um eine Größenordnung abweichen. Ein `-1` in der Spalte `entities` bedeutet, dass Postgres davon ausgeht, dass alle Zeilen eine eindeutige Entität enthalten. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. Im Allgemeinen sind Tabellen, bei denen die Anzahl der unterschiedlichen Entitäten weniger als 1 % der Gesamtzahl der Zeilen/Entitätsversionen beträgt, gute Kandidaten für die kontoähnliche Optimierung. Wenn die Ausgabe von `graphman stats show` darauf hindeutet, dass eine Tabelle von dieser Optimierung profitieren könnte, führt `graphman stats show ` eine vollständige Zählung der Tabelle durch - das kann langsam sein, liefert aber ein genaues Maß für das Verhältnis von eindeutigen Entitäten zu den gesamten Entitätsversionen. From 5578f90b4d65137dc2ff7f19b6edb6e09a3a0e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:37 -0400 Subject: [PATCH 0002/1709] New translations graph-node.mdx (Portuguese) --- .../src/pages/pt/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/pt/indexing/tooling/graph-node.mdx b/website/src/pages/pt/indexing/tooling/graph-node.mdx index 3d8d68eca293..8d85735d60bf 100644 --- a/website/src/pages/pt/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pt/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ Veja um exemplo completo de configuração do Kubernetes no [repositório do ind Durante a execução, o Graph Node expõe as seguintes portas: -| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | -| --- | --- | --- | --- | --- | -| 8000 | Servidor HTTP GraphQL
(para queries de subgraph) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | WS GraphQL
(para inscrições a subgraphs) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(para gerir implantações) | / | \--admin-port | - | -| 8030 | API de estado de indexação do subgraph | /graphql | \--index-node-port | - | -| 8040 | Métricas Prometheus | /metrics | \--metrics-port | - | +| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | +| ----- | ----------------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | Servidor HTTP GraphQL
(para queries de subgraph) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | WS GraphQL
(para inscrições a subgraphs) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(para gerir implantações) | / | \--admin-port | - | +| 8030 | API de estado de indexação do subgraph | /graphql | \--index-node-port | - | +| 8040 | Métricas Prometheus | /metrics | \--metrics-port | - | > **Importante**: Cuidado ao expor portas publicamente — **portas de administração** devem ser trancadas a sete chaves. Isto inclui o endpoint JSON-RPC do Graph Node. @@ -330,7 +330,7 @@ Tábuas de base de dados que armazenam entidades geralmente vêm em duas varieda Para tábuas tipo-conta, o `graph-node` pode gerar consultas que aproveitam detalhes de como o Postgres armazena dados tão frequentemente alterados — em particular, que todas as versões para blocos recentes estão numa pequena subsecção do armazenamento total para uma tábua do tipo. -O comando `graphman stats show mostra, para cada tipo/tábua de entidade em um lançamento, quantas entidades distintas e versões de entidades estão em cada tábua. Esses dados são baseados em estimativas internas do Postgres e são necessariamente imprecisos, com uma grande margem de erro. Um `-1` na coluna `entities` significa que o Postgres acredita que todas as linhas contém uma entidade distinta. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. Em geral, tábuas em que o número de entidades distintas é menos de 1% do total de linhas/versões de entidade são boas candidatas para a otimização tipo-conta. Quando o resultado do `graphman stats show` indica que uma tábua pode se beneficiar desta otimização, ativar o `graphman stats show
` fará uma contagem completa da tábua - que pode ser lenta, mas dá uma medida precisa da proporção entre entidades distintas e total de versões. From 8f0efe51e4ce8bb858d618288ff7be74dac5c71c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:38 -0400 Subject: [PATCH 0003/1709] New translations graph-node.mdx (Hindi) --- .../pages/hi/indexing/tooling/graph-node.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/hi/indexing/tooling/graph-node.mdx b/website/src/pages/hi/indexing/tooling/graph-node.mdx index fad29c77e35e..4b6911f0c5cf 100644 --- a/website/src/pages/hi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/hi/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ Kubernetes का एक पूर्ण उदाहरण कॉन्फ़ जब यह चल रहा होता है तो Graph Node following port को expose करता है: -| पोर्ट | उद्देश्य | रूट्स | आर्गुमेंट्स | पर्यावरण वेरिएबल्स | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for सबग्राफ subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | +| पोर्ट | उद्देश्य | रूट्स | आर्गुमेंट्स | पर्यावरण वेरिएबल्स | +| ----- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | ------------------ | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for सबग्राफ subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | > **प्रमुख बात**: सार्वजनिक रूप से पोर्ट्स को एक्सपोज़ करने में सावधानी बरतें - \*\*प्रशासनिक पोर्ट्स को लॉक रखना चाहिए। इसमें ग्राफ नोड JSON-RPC एंडपॉइंट भी शामिल है। @@ -225,7 +225,7 @@ provider = [ { label = "kovan", url = "http://..", features = [] } ] ### Managing Graph Node -एक चालू Graph Node (या कई Graph Nodes!) को चलाने के बाद, अगली चुनौती उन Graph Nodes पर तैनात किए गए सबग्राफ को प्रबंधित करने की होती है। ग्राफ-नोड विभिन्न टूल्स प्रदान करता है जो सबग्राफ के प्रबंधन में मदद करते हैं। +एक चालू Graph Node (या कई Graph Nodes!) को चलाने के बाद, अगली चुनौती उन Graph Nodes पर तैनात किए गए सबग्राफ को प्रबंधित करने की होती है। ग्राफ-नोड विभिन्न टूल्स प्रदान करता है जो सबग्राफ के प्रबंधन में मदद करते हैं। #### लॉगिंग @@ -245,7 +245,7 @@ Indexer रिपॉजिटरी एक [example Grafana configuration](https The graphman कमांड आधिकारिक कंटेनरों में शामिल है, और आप अपने ग्राफ-नोड कंटेनर में docker exec कमांड का उपयोग करके इसे चला सकते हैं। इसके लिए एक `config.toml` फ़ाइल की आवश्यकता होती है। -`graphman` कमांड्स का पूरा दस्तावेज़ ग्राफ नोड रिपॉजिटरी में उपलब्ध है। ग्राफ नोड `/docs` में [/docs/graphman.md](https://github.com/graphprotocol/ग्राफ-नोड/blob/master/docs/graphman.md) देखें। +`graphman` कमांड्स का पूरा दस्तावेज़ ग्राफ नोड रिपॉजिटरी में उपलब्ध है। ग्राफ नोड `/docs` में [/docs/graphman.md](https://github.com/graphprotocol/ग्राफ-नोड/blob/master/docs/graphman.md) देखें। ### Subgraph के साथ कार्य करना @@ -263,7 +263,7 @@ Indexing process के तीन अलग-अलग भाग हैं: - उपयुक्त संचालकों के साथ घटनाओं को संसाधित करना (इसमें राज्य के लिए श्रृंखला को कॉल करना और स्टोर से डेटा प्राप्त करना शामिल हो सकता है) - Resulting data को store पर लिखना -ये चरण पाइपलाइन किए गए हैं (अर्थात वे समानांतर रूप से निष्पादित किए जा सकते हैं), लेकिन वे एक-दूसरे पर निर्भर हैं। जहाँ सबग्राफ को इंडेक्स करने में धीमापन होता है, वहाँ इसकी मूल वजह विशिष्ट सबग्राफ पर निर्भर करेगी। +ये चरण पाइपलाइन किए गए हैं (अर्थात वे समानांतर रूप से निष्पादित किए जा सकते हैं), लेकिन वे एक-दूसरे पर निर्भर हैं। जहाँ सबग्राफ को इंडेक्स करने में धीमापन होता है, वहाँ इसकी मूल वजह विशिष्ट सबग्राफ पर निर्भर करेगी। Common causes of indexing slowness: @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr अकाउंट-जैसी तालिकाओं के लिए, `ग्राफ-नोड` ऐसे queries जनरेट कर सकता है जो इस विवरण का लाभ उठाते हैं कि Postgres इतनी तेज़ दर पर डेटा स्टोर करते समय इसे कैसे प्रबंधित करता है। खासतौर पर, हाल के ब्लॉक्स के सभी संस्करण ऐसी तालिका के कुल स्टोरेज के एक छोटे से हिस्से में होते हैं। -कमांड `graphman stats show प्रत्येक डिप्लॉयमेंट में मौजूद entities प्रकार/टेबल के लिए यह दिखाता है कि प्रत्येक टेबल में कितनी अलग-अलग entities और कितने entities वर्ज़न हैं। यह डेटा Postgres के आंतरिक अनुमानों पर आधारित होता है, और इसलिए यह अनिवार्य रूप से सटीक नहीं होता है और इसमें एक ऑर्डर ऑफ मैग्निट्यूड तक का अंतर हो सकता है। `entities` कॉलम में `-1` का मतलब है कि Postgres मानता है कि सभी पंक्तियां एक अलग entities को शामिल करती हैं। +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. सामान्यतः, वे तालिकाएँ जहाँ विशिष्ट entities की संख्या कुल पंक्तियों/entities संस्करणों की संख्या का 1% से कम हो, वे खाता-जैसा अनुकूलन के लिए अच्छे उम्मीदवार होती हैं। जब `graphman stats show` का आउटपुट यह दर्शाता है कि कोई तालिका इस optimization से लाभ उठा सकती है, तो `graphman stats show
` चलाने पर तालिका की पूरी गणना की जाती है - यह धीमा हो सकता है, लेकिन विशिष्ट entities और कुल entities संस्करणों के अनुपात का सटीक माप प्रदान करता है। From eddd55d7fec6c2fdbb05decc12768ec141f34603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:39 -0400 Subject: [PATCH 0004/1709] New translations graph-node.mdx (Romanian) --- .../src/pages/ro/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ro/indexing/tooling/graph-node.mdx b/website/src/pages/ro/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/ro/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ro/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From b5c3f86d40cdc1e7c5791d3a51a1c8f973e59754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:40 -0400 Subject: [PATCH 0005/1709] New translations graph-node.mdx (French) --- .../src/pages/fr/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/fr/indexing/tooling/graph-node.mdx b/website/src/pages/fr/indexing/tooling/graph-node.mdx index ea35e2fb9680..dbed55fcd2d6 100644 --- a/website/src/pages/fr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/fr/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ Un exemple complet de configuration Kubernetes se trouve dans le [dépôt d'Inde Lorsqu'il est en cours d'exécution, Graph Node expose les ports suivants : -| Port | Objectif | Routes | Argument CLI | Variable d'Environment | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(pour gérer les déploiements) | / | \--admin-port | - | -| 8030 | API du statut de l'indexation des subgraphs | /graphql | \--index-node-port | - | -| 8040 | Métriques Prometheus | /metrics | \--metrics-port | - | +| Port | Objectif | Routes | Argument CLI | Variable d'Environment | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | ---------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(pour gérer les déploiements) | / | \--admin-port | - | +| 8030 | API du statut de l'indexation des subgraphs | /graphql | \--index-node-port | - | +| 8040 | Métriques Prometheus | /metrics | \--metrics-port | - | > **Important** : Soyez prudent lorsque vous exposez des ports publiquement - les **ports d'administration** doivent être verrouillés. Ceci inclut l'endpoint JSON-RPC de Graph Node. @@ -330,7 +330,7 @@ Les tables de base de données qui stockent les entités semblent généralement Pour les tables de type compte, `graph-node` peut générer des requêtes qui tirent parti des détails de la façon dont Postgres stocke les données avec un taux de changement aussi élevé, à savoir que toutes les versions des blocs récents se trouvent dans une petite sous-section du stockage global d'une telle table. -La commande `graphman stats show montre, pour chaque type/table d'entité dans un déploiement, combien d'entités distinctes, et combien de versions d'entités chaque table contient. Ces données sont basées sur des estimations internes à Postgres, et sont donc nécessairement imprécises, et peuvent être erronées d'un ordre de grandeur. Un `-1` dans la colonne `entités` signifie que Postgres pense que toutes les lignes contiennent une entité distincte. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. En général, les tables où le nombre d'entités distinctes est inférieur à 1% du nombre total de versions de lignes/d'entités sont de bons candidats pour l'optimisation de type compte. Lorsque la sortie de `graphman stats show` indique qu'une table pourrait bénéficier de cette optimisation, l'exécution de `graphman stats show
` effectuera un comptage complet de la table - ce qui peut être lent, mais donne une mesure précise du ratio d'entités distinctes par rapport au nombre total de versions d'entités. From cc2d6a371ae22033f6c1227261c54caaf503429b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:42 -0400 Subject: [PATCH 0006/1709] New translations graph-node.mdx (Spanish) --- .../src/pages/es/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/es/indexing/tooling/graph-node.mdx b/website/src/pages/es/indexing/tooling/graph-node.mdx index 4563bd8444bb..3e87e3a58908 100644 --- a/website/src/pages/es/indexing/tooling/graph-node.mdx +++ b/website/src/pages/es/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit Cuando está funcionando, Graph Node muestra los siguientes puertos: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Las tablas de bases de datos que almacenan entidades suelen ser de dos tipos: La For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 40bbfb70111b3c4643fda0ff8faf7292dbade735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:43 -0400 Subject: [PATCH 0007/1709] New translations graph-node.mdx (Arabic) --- .../src/pages/ar/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ar/indexing/tooling/graph-node.mdx b/website/src/pages/ar/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/ar/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ar/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From ce4200f23116bc1b051f3cb09889a8bf56ec9cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:44 -0400 Subject: [PATCH 0008/1709] New translations graph-node.mdx (Czech) --- .../src/pages/cs/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/cs/indexing/tooling/graph-node.mdx b/website/src/pages/cs/indexing/tooling/graph-node.mdx index 9257902fe247..b6335d705be8 100644 --- a/website/src/pages/cs/indexing/tooling/graph-node.mdx +++ b/website/src/pages/cs/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit Když je Graf Uzel spuštěn, zpřístupňuje následující ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Zdá se, že databázové tabulky, které uchovávají entity, se obecně vyskyt For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From c1ed815af665cbf4f6f370a8bf7c520bbd01af78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:45 -0400 Subject: [PATCH 0009/1709] New translations graph-node.mdx (Italian) --- .../src/pages/it/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/it/indexing/tooling/graph-node.mdx b/website/src/pages/it/indexing/tooling/graph-node.mdx index 32015adbd8fd..29d3066cb2ae 100644 --- a/website/src/pages/it/indexing/tooling/graph-node.mdx +++ b/website/src/pages/it/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit Quando è in funzione, Graph Node espone le seguenti porte: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Le tabelle di database che memorizzano le entità sembrano essere generalmente d For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 5eb17a4f70305ffa70f135918612fd419688c4b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:46 -0400 Subject: [PATCH 0010/1709] New translations graph-node.mdx (Japanese) --- .../src/pages/ja/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ja/indexing/tooling/graph-node.mdx b/website/src/pages/ja/indexing/tooling/graph-node.mdx index dfbb9aeea657..93a57db23e2e 100644 --- a/website/src/pages/ja/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ja/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit グラフノードは起動時に以下のポートを公開します。 -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Indexers can use [qlog](https://github.com/graphprotocol/qlog/) to process and s For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 5281e1c33968a45626c64b4daa71b2f6b645512c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:47 -0400 Subject: [PATCH 0011/1709] New translations graph-node.mdx (Korean) --- .../src/pages/ko/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ko/indexing/tooling/graph-node.mdx b/website/src/pages/ko/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/ko/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ko/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From db239f52977f7607c0216496f5197ece9d23974c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:48 -0400 Subject: [PATCH 0012/1709] New translations graph-node.mdx (Dutch) --- .../src/pages/nl/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/nl/indexing/tooling/graph-node.mdx b/website/src/pages/nl/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/nl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/nl/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 0f9d12821032ce9fae120eeef313b961c0d8e1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:49 -0400 Subject: [PATCH 0013/1709] New translations graph-node.mdx (Polish) --- .../src/pages/pl/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/pl/indexing/tooling/graph-node.mdx b/website/src/pages/pl/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/pl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pl/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From bc885bbfa5e7efd8f9d628ab20a2f11fb8ff75e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:50 -0400 Subject: [PATCH 0014/1709] New translations graph-node.mdx (Russian) --- .../src/pages/ru/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ru/indexing/tooling/graph-node.mdx b/website/src/pages/ru/indexing/tooling/graph-node.mdx index 27f730d64966..05fabb843b74 100644 --- a/website/src/pages/ru/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ru/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ cargo run -p graph-node --release -- \ Во время работы Graph Node предоставляет следующие порты: -| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP-сервер
(для запросов к Субграфу) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(для подписок на Субграф) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(для управления развертываниями) | / | \--admin-port | - | -| 8030 | API статуса индексирования Субграфа | /graphql | \--index-node-port | - | -| 8040 | Метрики Prometheus | /metrics | \--metrics-port | - | +| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | +| ---- | -------------------------------------------------- | ---------------------------------------------- | ------------------ | ---------------- | +| 8000 | GraphQL HTTP-сервер
(для запросов к Субграфу) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(для подписок на Субграф) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(для управления развертываниями) | / | \--admin-port | - | +| 8030 | API статуса индексирования Субграфа | /graphql | \--index-node-port | - | +| 8040 | Метрики Prometheus | /metrics | \--metrics-port | - | > **Важно**. Будьте осторожны, открывая порты для общего доступа — **порты администрирования** должны оставаться закрытыми. Это касается конечных точек Graph Node JSON-RPC. @@ -330,7 +330,7 @@ Problematic queries most often surface in one of two ways. In some cases, users Для таблиц, подобных учетным записям, `graph-node` может генерировать запросы, в которых используются детали того, как Postgres в конечном итоге сохраняет данные с такой высокой скоростью изменения, а именно, что все версии последних блоков находятся в небольшом подразделе общего хранилища для такой таблицы. -Команда `graphman stats show ` показывает для каждого типа/таблицы объектов в развертывании, сколько различных объектов и сколько версий объектов содержит каждая таблица. Эти данные основаны на внутренних оценках Postgres и, следовательно, неточны и могут отличаться на порядок. `-1` в столбце `entities` означает, что Postgres считает, что все строки содержат отдельный объект. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. В общем, таблицы, в которых количество отдельных объектов составляет менее 1 % от общего количества версий строк/объектов, являются хорошими кандидатами на оптимизацию по аналогии с учетными записями. Если выходные данные `graphman stats show` указывают на то, что эта оптимизация может принести пользу таблице, запуск `graphman stats show
` произведёт полный расчет таблицы. Этот процесс может быть медленным, но обеспечит точную степень соотношения отдельных объектов к общему количеству версий объекта. From 82adb968ae3dfcc5066cecee9cd51b450dad91a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:51 -0400 Subject: [PATCH 0015/1709] New translations graph-node.mdx (Swedish) --- .../src/pages/sv/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/sv/indexing/tooling/graph-node.mdx b/website/src/pages/sv/indexing/tooling/graph-node.mdx index e3d030167389..3e624ab52527 100644 --- a/website/src/pages/sv/indexing/tooling/graph-node.mdx +++ b/website/src/pages/sv/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit När Graph Node är igång exponerar den följande portar: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Databastabeller som lagrar enheter verkar generellt komma i två varianter: 'tra For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From c7b120e70460dda8153ae5753ab04d6c5bce0408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:52 -0400 Subject: [PATCH 0016/1709] New translations graph-node.mdx (Turkish) --- .../src/pages/tr/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/tr/indexing/tooling/graph-node.mdx b/website/src/pages/tr/indexing/tooling/graph-node.mdx index 5f8d0267d3e0..da782fe0afdc 100644 --- a/website/src/pages/tr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/tr/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ Kubernetes örnek yapılandırmasının bütüncül bir örneği [endeksleyici G Graph Düğümü çalışırken aşağıdaki portları açar: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Önemli**: Bağlantı noktalarını herkese açık olarak dışarıya sunarken dikkatli olun. **Yönetim portları** kilitli tutulmalıdır. Bu gereklilik Graph Düğümü JSON-RPC uç noktası için de geçerlidir. @@ -330,7 +330,7 @@ Varlıkları depolayan veritabanı tablolarının genellikle iki çeşit olduğu Hesap benzeri (account-like) tablolar, sık sık güncellenen veriler içerdiğinden, PostgreSQL bu tür değişiklikleri depolarken eski satır sürümlerini de bir süre saklar. Ancak, en yeni bloklara ait sürümler genellikle tablonun küçük bir bölümünde bulunur. `graph-node`, bu yapıyı dikkate alarak sorgular oluşturur ve böylece veriye daha verimli bir şekilde erişilmesini sağlar. -`graphman stats show komutu, bir dağıtımda her bir varlık türü/tablosu için, kaç farklı varlık olduğunu ve her tablonun kaç varlık sürümü içerdiğini gösterir. Bu veri, Postgres'in içsel tahminlerine dayalıdır ve bu nedenle zorunlu olarak kesin değildir. Ayrıca bu veri, bir büyüklük derecesi kadar hatalı olabilir. `entities` sütunundaki bir `-1` değeri, Postgres'in tüm satırların farklı bir varlık içerdiğine inandığını gösterir. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. Genel olarak, farklı varlıkların sayısının, toplam satır/varlık sürümleri sayısının %1'inden daha az olduğu tablolar, hesap benzeri optimizasyon için iyi adaylardır. `graphman stats show` çıktısı bir tablonun bu optimizasyondan faydalanabileceğini gösterdiğinde, `graphman stats show
` komutunu çalıştırmak tablonun tam bir sayımını yapacaktır. Bu sayım yavaş olabilir ama farklı varlıkların genel varlık sürümlerine oranını tam olarak ölçer. From 286333f8aef385bf5f9e12d10395e8885492459a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:53 -0400 Subject: [PATCH 0017/1709] New translations graph-node.mdx (Ukrainian) --- .../src/pages/uk/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/uk/indexing/tooling/graph-node.mdx b/website/src/pages/uk/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/uk/indexing/tooling/graph-node.mdx +++ b/website/src/pages/uk/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 54ed44df906988a5eee46270cbba6dadc2675885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:55 -0400 Subject: [PATCH 0018/1709] New translations graph-node.mdx (Chinese Simplified) --- .../src/pages/zh/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/zh/indexing/tooling/graph-node.mdx b/website/src/pages/zh/indexing/tooling/graph-node.mdx index b151102f4324..ee1e0df027d4 100644 --- a/website/src/pages/zh/indexing/tooling/graph-node.mdx +++ b/website/src/pages/zh/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ cargo run -p graph-node --release -- \ 当运行Graph Node时,会暴露以下端口: -| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(用于管理部署) | / | \--admin-port | - | -| 8030 | 子图索引状态 API | /graphql | \--index-node-port | - | -| 8040 | Prometheus 指标 | /metrics | \--metrics-port | - | +| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | +| ---- | ----------------------------------------------- | ------------------------------------------------ | ------------------ | ----- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(用于管理部署) | / | \--admin-port | - | +| 8030 | 子图索引状态 API | /graphql | \--index-node-port | - | +| 8040 | Prometheus 指标 | /metrics | \--metrics-port | - | > **重要**: 公开暴露端口时要小心 - **管理端口** 应保持锁定。 这包括下面详述的 Graph节点 JSON-RPC。 @@ -330,7 +330,7 @@ Graph节点默认缓存GraphQL查询,这可以显著减少数据库负载。 对于类似账户的表,`graph-node` 可以生成查询,利用Postgres如何以如此高的变化率存储数据的细节,即最近块的所有版本都在这样一个表的整体存储的一小部分中。 -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. 一般来说,不同实体的数量小于行/实体版本总数的1%的表是类似帐户优化的良好候选者。当`graphman统计显示`的输出表明某个表可能会从这种优化中受益时,运行`graphman统计显示
`;将执行表的完整计数-这可能很慢,但可以精确衡量不同实体与整体实体版本的比率。 From 2f7189e31f76f61eb36ada7354170ebe9be20241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:56 -0400 Subject: [PATCH 0019/1709] New translations graph-node.mdx (Urdu (Pakistan)) --- .../src/pages/ur/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/ur/indexing/tooling/graph-node.mdx b/website/src/pages/ur/indexing/tooling/graph-node.mdx index ca1535e89a01..9d4206086f59 100644 --- a/website/src/pages/ur/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ur/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit جب یہ چل رہا ہوتا ہے گراف نوڈ مندرجہ ذیل پورٹس کو بے نقاب کرتا ہے: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Indexers can use [qlog](https://github.com/graphprotocol/qlog/) to process and s For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 079cee57996571b76d78026be1d8d09e94d4740f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:57 -0400 Subject: [PATCH 0020/1709] New translations graph-node.mdx (Vietnamese) --- .../src/pages/vi/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/vi/indexing/tooling/graph-node.mdx b/website/src/pages/vi/indexing/tooling/graph-node.mdx index edde8a157fd3..b3317ca9716f 100644 --- a/website/src/pages/vi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/vi/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 198d95254266b284f138d92f60842986c0dfc001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Sat, 5 Apr 2025 16:14:58 -0400 Subject: [PATCH 0021/1709] New translations graph-node.mdx (Marathi) --- .../src/pages/mr/indexing/tooling/graph-node.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/mr/indexing/tooling/graph-node.mdx b/website/src/pages/mr/indexing/tooling/graph-node.mdx index 687f1ea42338..10e682be7f67 100644 --- a/website/src/pages/mr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/mr/indexing/tooling/graph-node.mdx @@ -77,13 +77,13 @@ A complete Kubernetes example configuration can be found in the [indexer reposit When it is running Graph Node exposes the following ports: -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | > **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. @@ -330,7 +330,7 @@ Database tables that store entities seem to generally come in two varieties: 'tr For account-like tables, `graph-node` can generate queries that take advantage of details of how Postgres ends up storing data with such a high rate of change, namely that all of the versions for recent blocks are in a small subsection of the overall storage for such a table. -The command `graphman stats show shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. +The command `graphman stats show ` shows, for each entity type/table in a deployment, how many distinct entities, and how many entity versions each table contains. That data is based on Postgres-internal estimates, and is therefore necessarily imprecise, and can be off by an order of magnitude. A `-1` in the `entities` column means that Postgres believes that all rows contain a distinct entity. In general, tables where the number of distinct entities are less than 1% of the total number of rows/entity versions are good candidates for the account-like optimization. When the output of `graphman stats show` indicates that a table might benefit from this optimization, running `graphman stats show
` will perform a full count of the table - that can be slow, but gives a precise measure of the ratio of distinct entities to overall entity versions. From 92172ece4eeaf7afda65730e6b61c6f7b4f24587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 04:06:30 -0400 Subject: [PATCH 0022/1709] New translations tap.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/tap.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/zh/indexing/tap.mdx b/website/src/pages/zh/indexing/tap.mdx index 8a3aa1a43d1a..c3fcfa0d27cf 100644 --- a/website/src/pages/zh/indexing/tap.mdx +++ b/website/src/pages/zh/indexing/tap.mdx @@ -11,7 +11,7 @@ GraphTally is a drop-in replacement to the Scalar payment system currently in pl - 高效处理小额支付。 - 为链上交易和成本添加一层整合。 - 允许索引人控制收款和付款,保证查询付款。 -- 支持去中心化、去信任的网关,并提高了多个发送者的`索引人服务`性能。 +- 支持去中心化、去信任的网关,并提高了多个发送人的`索引人服务`性能。 ### 详情 @@ -45,7 +45,7 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 ### 合约 -| 合约 | Arbitrum 主网 (42161) | Arbitrum Sepolia (421614) | +| 合约 | Arbitrum 主网 (42161) | Arbitrum Sepolia (421614) | | ------------------- | -------------------------------------------- | -------------------------------------------- | | TAPVerifier | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | | AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | @@ -53,11 +53,11 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 ### 网关 -| 组件 | Edge and Node主网(Arbitrum 主网) | Edge and Node测试网(Arbitrum Sepolia) | -| ------ | --------------------------------------------- | --------------------------------------------- | -| 发送人 | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| 签字人 | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| 聚合器 | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| 组件 | Edge and Node主网(Arbitrum 主网) | Edge and Node测试网(Arbitrum Sepolia) | +| ------- | --------------------------------------------- | --------------------------------------------- | +| 发送人 | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| 签字人 | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| 聚合器 | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### 先决条件 @@ -88,7 +88,7 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 3. **TAP代理** - - 运行 _一个_ [TAP代理](https://github.com/graphprotocol/indexer-rs)实例。建议您使用[容器映像](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs)。 + - 运行 _一个_ [TAP代理](https://github.com/graphprotocol/indexer-rs)实例。建议您使用[容器映像](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs)。 4. **配置索引人服务和TAP代理** From 3cbb5a5f142803acf65b22f4e5c7c7a74bb79f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 06:15:08 -0400 Subject: [PATCH 0023/1709] New translations cursor.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/mcp/cursor.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/mcp/cursor.mdx b/website/src/pages/zh/token-api/mcp/cursor.mdx index b9295d7cb315..6a62bdddf023 100644 --- a/website/src/pages/zh/token-api/mcp/cursor.mdx +++ b/website/src/pages/zh/token-api/mcp/cursor.mdx @@ -6,7 +6,7 @@ sidebarTitle: Cursor ## 先决条件 - [Cursor](https://www.cursor.com/) installed. -- 一个来自[The Graph市场]的[JWT 代币](/token-api/quick-start) (https://thegraph.market/)。 +- 一个来自[The Graph市场](https://thegraph.market/)的[JWT 代币](/token-api/quick-start) 。 - [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 或 [`bunx`](https://bun.sh/) 已安装并在您的路径中可用。 - `@pinax/mcp`软件包需要 Node 18+,因为它依赖于内置的`fetch()` / `Headers`,这些软件包在Node 17或更高版本中不可用。 您可能需要指定一个到最新节点版本的确切路径, 或卸载以前版本的节点以确保`@pinax/mcp`使用正确版本。 From ab3f3640da9beaacbae8be6ea043a8717ed87a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 17:59:15 -0400 Subject: [PATCH 0024/1709] New translations index.json (Chinese Simplified) --- website/src/pages/zh/index.json | 74 ++++++++++++++++----------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/website/src/pages/zh/index.json b/website/src/pages/zh/index.json index 73a3a54b8106..e82bc7f27a27 100644 --- a/website/src/pages/zh/index.json +++ b/website/src/pages/zh/index.json @@ -7,7 +7,7 @@ "cta2": "创建你的第一个子图" }, "products": { - "title": "The Graph's Products", + "title": "The Graph的产品", "description": "选择一个适合您需要的解决方案—与您的路由区块链数据交互。", "subgraphs": { "title": "子图", @@ -21,7 +21,7 @@ }, "sps": { "title": "Substreams驱动的子图", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", + "description": "使用子流提高子图的效率和可扩展性。", "cta": "设置一个Substreams驱动的子图" }, "graphNode": { @@ -37,32 +37,32 @@ }, "supportedNetworks": { "title": "支持的网络", - "details": "Network Details", - "services": "Services", + "details": "网络详情", + "services": "服务", "type": "类型", - "protocol": "Protocol", - "identifier": "Identifier", - "chainId": "Chain ID", - "nativeCurrency": "Native Currency", + "protocol": "协议", + "identifier": "标识符", + "chainId": "链id", + "nativeCurrency": "本地货币", "docs": "相关文档", - "shortName": "Short Name", + "shortName": "缩略名", "guides": "指南", - "search": "Search networks", - "showTestnets": "Show Testnets", - "loading": "Loading...", - "infoTitle": "Info", - "infoText": "Boost your developer experience by enabling The Graph's indexing network.", - "infoLink": "Integrate new network", + "search": "搜索网络", + "showTestnets": "显示测试网", + "loading": "加载...", + "infoTitle": "信息", + "infoText": "启用The Graph索引网络以提升您的开发者体验。", + "infoLink": "集成新网络", "description": { "base": "The Graph支持 {0}。要添加一个新网络, {1}", "networks": "网络", "completeThisForm": "完成此表单" }, "emptySearch": { - "title": "No networks found", - "description": "No networks match your search for \"{0}\"", - "clearSearch": "Clear search", - "showTestnets": "Show testnets" + "title": "未发现网络", + "description": "没有符合您搜索的 \"{0} \" 的网络", + "clearSearch": "清空搜索内容", + "showTestnets": "显示测试网" }, "tableHeaders": { "name": "名称", @@ -76,46 +76,46 @@ "networkGuides": { "evm": { "subgraphQuickStart": { - "title": "Subgraph quick start", - "description": "Kickstart your journey into subgraph development." + "title": "子图快速入门", + "description": "开始你的旅程进入子图开发。" }, "substreams": { "title": "子流", - "description": "Stream high-speed data for real-time indexing." + "description": "用于实时索引的流高速数据。" }, "timeseries": { - "title": "Timeseries & Aggregations", - "description": "Learn to track metrics like daily volumes or user growth." + "title": "时间序列和聚合", + "description": "学习跟踪每日量或用户增长等计量。" }, "advancedFeatures": { - "title": "Advanced subgraph features", - "description": "Leverage features like custom data sources, event handlers, and topic filters." + "title": "高级子图功能", + "description": "利用自定义数据源、事件处理器和主题过滤器等功能。" }, "billing": { "title": "计费", - "description": "Optimize costs and manage billing efficiently." + "description": "优化成本和有效管理账单。" } }, "nonEvm": { "officialDocs": { - "title": "Official Substreams docs", - "description": "Stream high-speed data for real-time indexing." + "title": "官方子流文档", + "description": "用于实时索引的流高速数据。" }, "spsIntro": { - "title": "Substreams-powered Subgraphs Intro", - "description": "Supercharge your subgraph's efficiency with Substreams." + "title": "Substreams驱动的子图的常见问题", + "description": "通过子流提高您的子图的效率。" }, "substreamsDev": { "title": "Substreams.dev", - "description": "Access tutorials, templates, and documentation to build custom data modules." + "description": "访问教程、模板和文档以建立自定义数据模块。" }, "substreamsStarter": { - "title": "Substreams starter", - "description": "Leverage this boilerplate to create your first Substreams module." + "title": "子流启动器", + "description": "利用这个锅炉板来创建您的第一个子流模块。" }, "substreamsRepo": { - "title": "Substreams repo", - "description": "Study, contribute to, or customize the core Substreams framework." + "title": "子流仓库", + "description": "研究、促进或定制核心子流框架。" } } }, @@ -164,7 +164,7 @@ }, "howToIndexSolana": { "title": "如何用子流驱动子图索引Solana", - "description": "If you're familiar with Subgraphs, discover how Substreams offer a different approach for key use cases." + "description": "如果您熟悉子图,发现子流如何为关键用途案例提供不同的方法。" } }, "time": { From aa59145ea8dc3e897f3c9b8c55bbe32546e7e407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 17:59:16 -0400 Subject: [PATCH 0025/1709] New translations tap.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/tap.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/src/pages/zh/indexing/tap.mdx b/website/src/pages/zh/indexing/tap.mdx index c3fcfa0d27cf..a182b1dc63ad 100644 --- a/website/src/pages/zh/indexing/tap.mdx +++ b/website/src/pages/zh/indexing/tap.mdx @@ -1,12 +1,12 @@ --- -title: GraphTally Guide +title: GraphTally 指南 --- 了解图表的新支付系统,**GraphTally** [(先前的时间线聚合协议)](https://docs.rs/tap_core/latest/tap_core/index.html)。这个系统提供了快速、高效的微交易,并最大限度地减少了信任。 ## 概述 -GraphTally is a drop-in replacement to the Scalar payment system currently in place. It provides the following key features: +GraphTally是目前实行的Scalar支付系统的退货替代。它提供以下关键功能: - 高效处理小额支付。 - 为链上交易和成本添加一层整合。 @@ -79,7 +79,7 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 1. **索引人代理** - 遵循[相同的过程](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components)。 - - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. + - 给出新的参数`--tap-subgraph-endpoint`以激活新的TAP代码路径并启用RAV的兑换。 2. **索引人服务** From e9f4f2c62dae4aa8937d59342bb67dd88593ab51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 17:59:18 -0400 Subject: [PATCH 0026/1709] New translations cursor.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/mcp/cursor.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/src/pages/zh/token-api/mcp/cursor.mdx b/website/src/pages/zh/token-api/mcp/cursor.mdx index 6a62bdddf023..f13c51902e49 100644 --- a/website/src/pages/zh/token-api/mcp/cursor.mdx +++ b/website/src/pages/zh/token-api/mcp/cursor.mdx @@ -1,20 +1,20 @@ --- -title: Using Cursor to Access the Token API via MCP +title: 通过 MCP 使用 Cursor 访问代币API sidebarTitle: Cursor --- ## 先决条件 -- [Cursor](https://www.cursor.com/) installed. +- [Cursor](https://www.cursor.com/) 已安装。 - 一个来自[The Graph市场](https://thegraph.market/)的[JWT 代币](/token-api/quick-start) 。 - [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 或 [`bunx`](https://bun.sh/) 已安装并在您的路径中可用。 - `@pinax/mcp`软件包需要 Node 18+,因为它依赖于内置的`fetch()` / `Headers`,这些软件包在Node 17或更高版本中不可用。 您可能需要指定一个到最新节点版本的确切路径, 或卸载以前版本的节点以确保`@pinax/mcp`使用正确版本。 -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) +![Cursor的 MCP 配置面板的屏幕截图。](/img/cursor-preview-token-api.png) ## 配置 -Create or edit your `~/.cursor/mcp.json` file. +创建或编辑您的`~/.cursor/mcp.json`文件。 > **Cursor Settings** > **MCP** > **Add new global MCP Server** From 364d3ff1725a6330bdda0e19ae7500c57629d3d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 17:59:19 -0400 Subject: [PATCH 0027/1709] New translations faq.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/faq.mdx | 106 ++++++++++++------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/website/src/pages/zh/token-api/faq.mdx b/website/src/pages/zh/token-api/faq.mdx index 99e1466c9952..dae4068e2aaa 100644 --- a/website/src/pages/zh/token-api/faq.mdx +++ b/website/src/pages/zh/token-api/faq.mdx @@ -1,109 +1,109 @@ --- -title: Token API FAQ +title: 代币 API 常见问题 --- -Get fast answers to easily integrate and scale with The Graph's high-performance Token API. +获取快速答案以便轻松地与The Graph的高性能代币API进行整合和缩放。 ## 通用 -### What blockchains does the Token API support? +### 代币 API 支持什么区块链? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +目前,代币API支持Etherum, Binance Smart Chain(BSC), Polygon, Optimism, Base, and Arbitrum One。 -### Why isn't my API key from The Graph Market working? +### 为什么我的 API 密钥无法从The Graph市场运行? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +请务必使用 API 密钥生成的 Access Token ,而不是 API 密钥本身。 在每个API密钥旁边的下拉菜单可以从The Graph市场上的控制板生成访问代币。 -### How current is the data provided by the API relative to the blockchain? +### API提供的数据相对于区块链的最新程度如何? -The API provides data up to the latest finalized block. +API提供最新最终块的数据。 -### How do I authenticate requests to the Token API? +### 如何验证对代币API的请求? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +身份验证是通过 JWT 代币通过The Graph市场获得的。 由 [Pinax](https://pinax.network/en)发布的 JWT代币,The Graph的核心开发者也获得了支持。 -### Does the Token API provide a client SDK? +### Token API 提供客户端SDK吗? -While a client SDK is not currently available, please share feedback on any SDKs or integrations you would like to see on [Discord](https://discord.gg/graphprotocol). +虽然客户端SDK目前不可用。 请分享您想要在 [Discord](https://discord.gg/graphprotocol)上看到的 SDK 或集成的反馈。 -### Are there plans to support additional blockchains in the future? +### 未来是否有计划支持更多的区块链? -Yes, more blockchains will be supported in the future. Please share feedback on desired chains on [Discord](https://discord.gg/graphprotocol). +是的,将来会支持更多的区块链。请分享关于在[Discord](https://discord.gg/graphprotocol)上所需的的反馈。 -### Are there plans to offer data closer to the chain head? +### 是否有计划提供更接近链头的数据? -Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). +是的,正在计划进行改进以提供更接近链头的数据。欢迎反馈到 [Discord](https://discord.gg/graphprotocol)。 -### Are there plans to support additional use cases such as NFTs? +### 是否计划支持诸如NFT等其他用途案例? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph生态系统正在积极确定包括NFT在内的额外使用案例的 [roadmap](https://thegraph.com/blog/token-api-the-graph/)。 请提供您想要在 [Discord](https://discord.gg/graphprotocol)上优先级的特定功能的反馈。 -## MCP / LLM / AI Topics +## MCP / LLM / AI 主题 -### Is there a time limit for LLM queries? +### LLM查询是否有时限? -Yes. The maximum time limit for LLM queries is 10 seconds. +是的。LLM查询的最大时间限制为10秒。 -### Is there a known list of LLMs that work with the API? +### 是否有已知的与API共用的 LLM清单? -Yes, Cline, Cursor, and Claude Desktop integrate successfully with The Graph's Token API + MCP server. +是的,Cline,Cursor,Claude Desktop 已成功整合到 The Graph 的Token API + MCP 服务器。 -Beyond that, whether an LLM "works" depends on whether it supports the MCP protocol directly (or has a compatible plugin/adapter). +除此之外,LLM “工作”是否取决于它是否直接支持 MCP 协议(或拥有兼容的插件/适配器)。 -### Where can I find the MCP client? +### 我在哪里可以找到MCP客户端? -You can find the code for the MCP client in [The Graph's repo](https://github.com/graphprotocol/mcp-client). +您可以在 [The Graph的仓库](https://github.com/graphprotocol/mcp-client) 中找到MCP客户端的代码。 -## Advanced Topics +## 高级主题 -### I'm getting 403/401 errors. What's wrong? +### 我有403/401错误。是怎么回事? -Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +检查您是否包含了 `Authorization: Bearer ` 页眉和正确且未过期的代币。 常见问题包括使用 API 密钥而不是生成一个新的 JWT, 忘记“Bearer”前缀,使用不正确的代币,或完全省略标题。 请确保您复制JWT,正好像The Graph市场提供的。 -### Are there rate limits or usage costs?\*\* +### 是否有费率限制或使用成本?\*\* -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +Beta期间,Token API 对授权的开发者是免费的。虽然特定的费率限制没有记录,但存在着合理的节奏来防止滥用。 高请求卷可能会触发HTTP 429 错误。请监视官方公告,以了解Beta以后未来的定价变化。 -### What networks are supported, and how do I specify them? +### 支持哪些网络,以及我如何指定这些网络? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +您可以通过 [此链接](https://token-api.thegraph.com/#tag/monitoring/GET/networks)查询可用网络。 完整的网络ID列表被该图接受,可在 [The Graph的网络](https://thegraph.com/docs/en/supported-networks/)上找到。 API支持Ethereum 主机、 Binance Smart Chain、 Base 、 Arbitrum One 、 Optimism 和 Polygon/Matic 。 使用可选的 `net_id` 参数(如:`mainnet`、`bsc`、`base`、`arbitrum-one`、`optim`) 来针对特定的链。 没有此参数,API默认为Ethereum 主网。 -### Why do I only see 10 results? How can I get more data? +### 为什么我只看到10个结果?我怎么能够获得更多的数据? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +默认情况下,终点上限输出为10个项目。使用分页参数:`limit` (最多500个)和`page` (1-index)。 例如,设置`limit=50` 以获得50个结果,并为以后的批次增加`page` (例如项目51-100的`page=2`)。 -### How do I fetch older transfer history? +### 如何获取较早的转账历史? -The Transfers endpoint defaults to 30 days of history. To retrieve older events, increase the `age` parameter up to 180 days maximum (e.g., `age=180` for 6 months of transfers). Transfers older than 180 days cannot be fetched in a single call. +传输端点默认为30天历史记录。要检索更早的事件,请最多增加180天的`年龄`参数(如,`age=180`可以调用六个月转账记录)。超过180 天的转账记录不能在一次调用中获取。 -### What does an empty `"data": []` array mean? +### 空的`数据':[]`数组是什么意思? -An empty data array means no records were found matching the query – not an error. This occurs when querying wallets with no tokens/transfers or token contracts with no holders. Verify you've used the correct address and parameters. An invalid address format will trigger a 4xx error. +空数据组意味着没有找到匹配查询的记录——不是错误。 当查询钱包时没有任何代币/转账或与没有持有人的代币合约时发生。 验证您使用了正确的地址和参数。无效的地址格式将触发一个 4xx 错误。 -### Why is the JSON response wrapped in a `"data"` array? +### 为什么JSON响应被包装在一个“data”数组中? -All Token API responses consistently wrap results in a top-level `data` array, even for single items. This uniform design handles the common case where addresses have multiple balances or transfers. When parsing, be sure to index into the `data` array (e.g., `const results = response.data`). +所有 Token API 响应始终都会在顶级`data`数组中产生结果,即使是单个项目。 这种统一设计,处理地址有多个余额或传输的常见情况。 解析时,肯定要索引到 `data` 数组(例如`const results = response.data`)。 -### Why are token amounts returned as strings? +### 为什么作为字符串退回代币数量? -Large numeric values (like token amounts or supplies) are returned as strings to avoid precision loss, as they often exceed JavaScript's safe integer range. Convert these to big number types for arithmetic operations. Fields like `decimals` are provided as normal numbers to help derive human-readable values. +作为字符串返回大的数值(例如代币数量或供应品),以避免精度损失,因为它们常常超过JavaScript的安全整数范围。 将这些类型转换为大型算术操作。像`十进制`这样的字段作为正常数字提供,以帮助得出可读值。 -### What format should addresses be in? +### 地址应该包含什么格式? -The API accepts 40-character hex addresses with or without the `0x` prefix. The endpoint is case-insensitive, so both lower and uppercase hex characters work. Ensure addresses are exactly 40 hex digits (20 bytes) if you remove the prefix. For contract queries, use the token's contract address; for balance/transfer queries, use the wallet address. +API 接受带有或不带`0x`前缀的40个字符十六进制地址。端点是大小写不敏感的,所以下级和上级十六进制字符都可以工作。 如果您删除前缀,请确保地址正好是40个十六进制数字(20个字节)。 对于合约查询,使用代币的合约地址;对于余额/转账查询,请使用钱包地址。 -### Do I need special headers besides authentication? +### 除了身份验证外,我是否需要特殊的块头? -While recommended, `Accept: application/json` isn't strictly required as the API returns JSON by default. The critical header is `Authorization: Bearer `. Ensure you make a GET request to the correct URL without trailing slashes or path typos (e.g., use `/balances/evm/{address}` not `/balance`). +虽然建议使用`Accept:application/json`,但这并不是严格要求的,因为API默认返回json。关键标头是`Authorization:Bearer`。确保你对正确的URL发出GET请求,没有尾随斜线或路径拼写错误(例如,使用`/bances/evm/{address}`而不是`/bancel`)。 -### MCP integration with Claude/Cline/Cursor shows errors like "ENOENT" or "Server disconnected". How do I fix this? +### MCP 集成与 Claude/Cline/Cursor 显示了诸如"ENOENT" 或 "服务器断开连接"等错误。我如何解决这个问题? -For "ENOENT" errors, ensure Node.js 18+ is installed and the path to `npx`/`bunx` is correct (consider using full paths in config). "Server disconnected" usually indicates authentication or connectivity issues – verify your `ACCESS_TOKEN` is set correctly and your network allows access to `https://token-api.thegraph.com/sse`. +关于“ENOENT”错误,请确保Node.js 18+ 已安装,并且`npx`/`bunx` 的路径是正确的(请考虑使用配置中的全部路径)。 "服务器断开连接"通常表示身份验证或连接问题——验证您的`ACCESS_TOKEN`设置正确,您的网络允许访问 `https://token-api.thegraph.com/sse`。 -### Is the Token API part of The Graph's GraphQL service? +### Token API 是否是The Graph的 GraphQL 服务的一部分? -No, the Token API is a separate RESTful service. Unlike traditional subgraphs, it provides ready-to-use REST endpoints (HTTP GET) for common token data. You don't need to write GraphQL queries or deploy subgraphs. Under the hood, it uses The Graph's infrastructure and MCP with AI for enrichment, but you simply interact with REST endpoints. +不,Token API 是一个单独的RESTify服务。 不同于传统子图,它提供现成的REST 端点(HTTP GET) 以获取通用代币数据。 您无需写入 GraphQL 查询或部署子图。 在这个场景下,它使用 The Graph的基础设施和MCP 与 AI 进行丰富,但你只是与REST 端点交互。 -### Do I need to use MCP or tools like Claude, Cline, or Cursor? +### 我是否需要使用 MCP 或工具,如Claude、Cline或Cursor? -No, these are optional. MCP is an advanced feature allowing AI assistants to interface with the API via streaming. For standard usage, simply call the REST endpoints with any HTTP client using your JWT. Claude Desktop, Cline bot, and Cursor IDE integrations are provided for convenience but aren't required. +不,它们是可选的。MCP 是一个高级功能,允许AI 助手通过子流与 API 接口。 对于标准用法,只需使用您的JWT来调用 REST 端点和任意HTTP客户端。 为方便起见,提供了Claude Desktop、Cline bot 和光标IDE集成,但不需要。 From 3158d000bb127a5cda05fbd2f69131b84ec2c563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 7 Apr 2025 17:59:21 -0400 Subject: [PATCH 0028/1709] New translations subgraph-composition.mdx (Chinese Simplified) --- .../subgraphs/guides/subgraph-composition.mdx | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx index 7fbb93375ad8..8b6eca6cfc16 100644 --- a/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx @@ -5,11 +5,11 @@ sidebarTitle: 用多个子图生成可编译子图 利用子图构成来加快开发时间。创建基础子图,带有基本数据,然后在它上方构建附加子图。 -Optimize your Subgraph by merging data from independent, source Subgraphs into a single composable Subgraph to enhance data aggregation. +通过将三个独立的源子图数据合并成一个单一的可合成子图来优化您的子图,以加强数据集成。 ## 介绍 -Composable Subgraphs enable you to combine multiple Subgraphs' data sources into a new Subgraph, facilitating faster and more flexible Subgraph development. Subgraph composition empowers you to create and maintain smaller, focused Subgraphs that collectively form a larger, interconnected dataset. +合成子图使您能够将多个子图数据源合并为一个新子图,方便更快和更灵活的开发子图。 子图的合成增强了创建和保持较小的、重点突出的子图的能力,这些子图集合在一起形成了一个更大的、相互关联的数据集。 ### 合成的好处 @@ -37,28 +37,28 @@ Composable Subgraphs enable you to combine multiple Subgraphs' data sources into ## 先决条件 -### Source Subgraphs +### 源子图 -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) -- See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- 所有子图都需要发布一个 **specversion 1.3.0 或更高版本** (使用最新的 graph-cli 版本才能部署可合成的子图) +- 见此注释:https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 +- 仅限不可变实体:所有子图都必须有[不可变实体](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) 当布置子图时 +- 打印可以在源子图中使用,但只有不可变的实体可以在源子图顶部组成 +- 源子图不能在现有实体顶部使用图形 +- 合成实体可用于组成,但由聚合实体组成的实体不能直接进行额外聚合 -### Composed Subgraphs +### 合成子图 -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- 您只能创建合成 \*_最多5 个源子图_ +- 合成子图只能使用 **来自同一链的数据源** +- **嵌套的合成尚不支持**:此时不允许在另一个合成子图上面撰写 +- 聚合实体可用于合成,但其合成实体也不能直接使用聚合 +- 开发者无法使用子图数据源创建在线数据源 (例如,您不能在合成子图中做正常的事件处理器,以及调用处理器和区块处理器) -Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs +此外,您还可以探索 [示例-合成-子图](https://github.com/graphprotocol/example-composable-subgraph) 存储库,用于可编译子图的工作实现。 ## 开始 -The following guide provides examples for defining 3 source Subgraphs to create one powerful composed Subgraph. +以下指南提供了用于定义三个源子图以创建一个强大子图的示例。 ### 详情 @@ -106,7 +106,7 @@ npm run deploy-local ### 第 4 步:合并进区块统计子图 -This composed Subgraph combines and aggregates the information from the source Subgraphs above, providing a unified view of block statistics. To deploy this Subgraph locally, run the same commands as above. +这个合成子图将上述三个源子图的信息合并和汇总,为区块统计提供了统一的视图。 要在本地部署此子图,请执行与上面相同的命令。 > 注意: > @@ -117,16 +117,16 @@ This composed Subgraph combines and aggregates the information from the source S #### 关键函数 - 它提供了一个综合数据模型,其中包括所有相关的区块计量。 -- It combines data from 3 source Subgraphs, and provides a comprehensive view of block statistics, enabling more complex queries and analyses. +- 它综合了三个源子图中的数据,并提供了对区块统计的全面看法,从而能够进行更复杂的查询和分析。 ## 要点前瞻 - 这个强大的工具将缩放子图的开发,并允许您合并多个子图。 -- The setup includes the deployment of 3 source Subgraphs and one final deployment of the composed Subgraph. +- 设置包括部署三个源子图以及最终部署一个合成子图。 - 这个功能解锁了可扩展性,简化了开发和维护效率。 ## 其他资源 -- Check out all the code for this example in [this GitHub repo](https://github.com/graphprotocol/example-composable-subgraph). +- 在[此GitHub仓库](https://github.com/graphprotocol/example-composable-subgraph)中查看此示例的所有代码。 - 若要将高级功能添加到您的子图,请参阅[子图高级功能](/developing/creating/advanced/)。 - 要了解更多关于聚合的信息,请查看 [Timeseries and Aggreg](/subgraphs/developing/creating/advanced/#timeseries-and-aggregations)。 From abe81ae5d29211353365a906cf6f96b3b5fa90a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:38 -0400 Subject: [PATCH 0029/1709] New translations subgraph-composition.mdx (Romanian) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ro/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ro/subgraphs/guides/subgraph-composition.mdx index 09f1939c1fde..1d6ab12958b4 100644 --- a/website/src/pages/ro/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ro/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 98fa75bec761ff085c4f73333a553409633ac34b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:40 -0400 Subject: [PATCH 0030/1709] New translations subgraph-composition.mdx (French) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/fr/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/fr/subgraphs/guides/subgraph-composition.mdx index ccf1f043fcb1..00c4238f168a 100644 --- a/website/src/pages/fr/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/fr/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ Alors que le subgraph source est un subgraph standard, le subgraph dépendant ut ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From f6e37a1d5621198f385934f00c2995d8aa8ef9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:41 -0400 Subject: [PATCH 0031/1709] New translations subgraph-composition.mdx (Spanish) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/es/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/es/subgraphs/guides/subgraph-composition.mdx index 3f5fc5e44cca..6fa236b8b7e4 100644 --- a/website/src/pages/es/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/es/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 19b105350f092b5ccc8fbd0023d29754374f1e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:42 -0400 Subject: [PATCH 0032/1709] New translations subgraph-composition.mdx (Arabic) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ar/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ar/subgraphs/guides/subgraph-composition.mdx index 080de99b5ba1..35cdef554157 100644 --- a/website/src/pages/ar/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ar/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 26bdbfb050002bba3666c4292610dcf17ea630b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:43 -0400 Subject: [PATCH 0033/1709] New translations subgraph-composition.mdx (Czech) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/cs/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/cs/subgraphs/guides/subgraph-composition.mdx index f5480ab15a48..aef8badbe0e1 100644 --- a/website/src/pages/cs/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/cs/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 317da639e306768fc5c9dec718efdcf1c75458de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:44 -0400 Subject: [PATCH 0034/1709] New translations subgraph-composition.mdx (German) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/de/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/de/subgraphs/guides/subgraph-composition.mdx index 900ecb8e636d..07c4381f7cda 100644 --- a/website/src/pages/de/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/de/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ Während der Ausgangs-Subgraph ein Standard-Subgraph ist, verwendet der abhängi ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From ed8786d000272683adae14ed9726f0f6a89594c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:45 -0400 Subject: [PATCH 0035/1709] New translations subgraph-composition.mdx (Italian) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/it/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/it/subgraphs/guides/subgraph-composition.mdx index 51d882cda5e9..08112a03ca4d 100644 --- a/website/src/pages/it/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/it/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 981a8351d324c13b8c5b991debf44db5979f1e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:47 -0400 Subject: [PATCH 0036/1709] New translations subgraph-composition.mdx (Japanese) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ja/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ja/subgraphs/guides/subgraph-composition.mdx index 62b2d8eb4657..f781231fe623 100644 --- a/website/src/pages/ja/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ja/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 97c25d3a21bc582f7c9563667812519ab49a2044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:48 -0400 Subject: [PATCH 0037/1709] New translations subgraph-composition.mdx (Korean) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ko/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ko/subgraphs/guides/subgraph-composition.mdx index 09f1939c1fde..1d6ab12958b4 100644 --- a/website/src/pages/ko/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ko/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From cb662c8b79d8101fddea861ea5688bc65cb847b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:49 -0400 Subject: [PATCH 0038/1709] New translations subgraph-composition.mdx (Dutch) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/nl/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/nl/subgraphs/guides/subgraph-composition.mdx index bf62dc4dde30..995dde415867 100644 --- a/website/src/pages/nl/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/nl/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 169087ae53ef74e5f4a6a9544243c080b55d963f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:50 -0400 Subject: [PATCH 0039/1709] New translations subgraph-composition.mdx (Polish) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pl/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/pl/subgraphs/guides/subgraph-composition.mdx index fb8427b04be9..bc440454d326 100644 --- a/website/src/pages/pl/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/pl/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From bb64e9ad40904f8629ce340f99a50f210b19f148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:51 -0400 Subject: [PATCH 0040/1709] New translations subgraph-composition.mdx (Portuguese) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pt/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/pt/subgraphs/guides/subgraph-composition.mdx index 8996bfaf909f..b923f027b2a8 100644 --- a/website/src/pages/pt/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/pt/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ Embora o subgraph de origem seja um Subgraph padrão, o dependente usa o recurso ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 32ace24b62409ab8fab1848b7dcdf227041e1b2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:52 -0400 Subject: [PATCH 0041/1709] New translations subgraph-composition.mdx (Russian) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ru/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ru/subgraphs/guides/subgraph-composition.mdx index 5c3b634a5620..ac52b2d5d6f2 100644 --- a/website/src/pages/ru/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ru/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ Composable Subgraphs enable you to combine multiple Subgraphs' data sources into ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 7d177eb4de3a71fb48752453822f0d6baf272c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:53 -0400 Subject: [PATCH 0042/1709] New translations subgraph-composition.mdx (Swedish) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/sv/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/sv/subgraphs/guides/subgraph-composition.mdx index 805a904c7ba9..8b00714ad8ad 100644 --- a/website/src/pages/sv/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/sv/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 8cb7934e4a60bb269821a588cad410f72c7313e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:55 -0400 Subject: [PATCH 0043/1709] New translations subgraph-composition.mdx (Turkish) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/tr/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/tr/subgraphs/guides/subgraph-composition.mdx index 51bf15b4ecd9..0247c0ad6f96 100644 --- a/website/src/pages/tr/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/tr/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 689db200dfe388ec24573e453a0421880c278005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:56 -0400 Subject: [PATCH 0044/1709] New translations subgraph-composition.mdx (Ukrainian) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/uk/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/uk/subgraphs/guides/subgraph-composition.mdx index 044af23870e6..dea76080a9ff 100644 --- a/website/src/pages/uk/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/uk/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 3f44e6c7f4d15cd39093a8fcfa23c9d310bc19c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:57 -0400 Subject: [PATCH 0045/1709] New translations subgraph-composition.mdx (Chinese Simplified) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx index 8b6eca6cfc16..c2cfe24212ef 100644 --- a/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/zh/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ sidebarTitle: 用多个子图生成可编译子图 ### 源子图 -- 所有子图都需要发布一个 **specversion 1.3.0 或更高版本** (使用最新的 graph-cli 版本才能部署可合成的子图) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - 见此注释:https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- 仅限不可变实体:所有子图都必须有[不可变实体](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) 当布置子图时 -- 打印可以在源子图中使用,但只有不可变的实体可以在源子图顶部组成 -- 源子图不能在现有实体顶部使用图形 -- 合成实体可用于组成,但由聚合实体组成的实体不能直接进行额外聚合 +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### 合成子图 -- 您只能创建合成 \*_最多5 个源子图_ -- 合成子图只能使用 **来自同一链的数据源** -- **嵌套的合成尚不支持**:此时不允许在另一个合成子图上面撰写 -- 聚合实体可用于合成,但其合成实体也不能直接使用聚合 -- 开发者无法使用子图数据源创建在线数据源 (例如,您不能在合成子图中做正常的事件处理器,以及调用处理器和区块处理器) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). 此外,您还可以探索 [示例-合成-子图](https://github.com/graphprotocol/example-composable-subgraph) 存储库,用于可编译子图的工作实现。 From 18fbb1f1b8f049065e29ae4ffd9a56510e333b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:58 -0400 Subject: [PATCH 0046/1709] New translations subgraph-composition.mdx (Urdu (Pakistan)) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ur/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/ur/subgraphs/guides/subgraph-composition.mdx index c8b09c0c30fc..1a8f98cc5afa 100644 --- a/website/src/pages/ur/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/ur/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 2785f8bac4d5311b0402e256e1b343d9d874f529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:52:59 -0400 Subject: [PATCH 0047/1709] New translations subgraph-composition.mdx (Vietnamese) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/vi/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/vi/subgraphs/guides/subgraph-composition.mdx index 65aeb9f4ac09..6ed5ad3ec639 100644 --- a/website/src/pages/vi/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/vi/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 3ea0e971a05e17b0984352edf5259f0a16b10829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:53:00 -0400 Subject: [PATCH 0048/1709] New translations subgraph-composition.mdx (Marathi) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/mr/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/mr/subgraphs/guides/subgraph-composition.mdx index 52da13032a9c..5ffaa92e22e8 100644 --- a/website/src/pages/mr/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/mr/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ While the source Subgraph is a standard Subgraph, the dependent Subgraph uses th ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 08acc756fabd0e6775587eaeff1fd8125584c6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 8 Apr 2025 17:53:01 -0400 Subject: [PATCH 0049/1709] New translations subgraph-composition.mdx (Hindi) --- .../subgraphs/guides/subgraph-composition.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/hi/subgraphs/guides/subgraph-composition.mdx b/website/src/pages/hi/subgraphs/guides/subgraph-composition.mdx index be71b8199574..3083a342ddc7 100644 --- a/website/src/pages/hi/subgraphs/guides/subgraph-composition.mdx +++ b/website/src/pages/hi/subgraphs/guides/subgraph-composition.mdx @@ -39,20 +39,20 @@ Subgraph संयोजन एक शक्तिशाली विशेष ### Source Subgraphs -- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs) +- All Subgraphs need to be published with a **specVersion 1.3.0 or later** (Use the latest graph-cli version to be able to deploy composable Subgraphs). - See notes here: https://github.com/graphprotocol/graph-node/releases/tag/v0.37.0 -- Immutable entities only: All Subgraphs must have [immutable entities](https://thegraph.com/docs/en/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed -- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of -- Source Subgraphs cannot use grafting on top of existing entities -- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly +- Immutable entities only: All Subgraphs must have [immutable entities](/subgraphs/best-practices/immutable-entities-bytes-as-ids/#immutable-entities) when the Subgraph is deployed. +- Pruning can be used in the source Subgraphs, but only entities that are immutable can be composed on top of. +- Source Subgraphs cannot use grafting on top of existing entities. +- Aggregated entities can be used in composition, but entities that are composed from them cannot performed additional aggregations directly. ### Composed Subgraphs -- You can only compose up to a **maximum of 5 source Subgraphs** -- Composed Subgraphs can only use **datasources from the same chain** -- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time -- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly -- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph) +- You can only compose up to a **maximum of 5 source Subgraphs.** +- Composed Subgraphs can only use **datasources from the same chain.** +- **Nested composition is not yet supported**: Composing on top of another composed Subgraph isn’t allowed at this time. +- Aggregated entities can be used in composition, but the composed entities on them cannot also use aggregations directly. +- Developers cannot compose an onchain datasource with a Subgraph datasource (i.e. you can’t do normal event handlers and call handlers and block handlers in a composed Subgraph). Additionally, you can explore the [example-composable-subgraph](https://github.com/graphprotocol/example-composable-subgraph) repository for a working implementation of composable Subgraphs From 5c54549daaa388f3f204dcfaaca55e4190108672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:04 -0400 Subject: [PATCH 0050/1709] New translations index.json (Romanian) --- website/src/pages/ro/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ro/index.json b/website/src/pages/ro/index.json index fe31bcb97070..8893031ab220 100644 --- a/website/src/pages/ro/index.json +++ b/website/src/pages/ro/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 0e5dfa9f93c02d50a0a6607f0a545e50e270dfd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:06 -0400 Subject: [PATCH 0051/1709] New translations index.json (French) --- website/src/pages/fr/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/fr/index.json b/website/src/pages/fr/index.json index ee19877c78e6..9a02e3d03d6f 100644 --- a/website/src/pages/fr/index.json +++ b/website/src/pages/fr/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 2182edf2ded86edaf5307c4038e22899f1928820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:07 -0400 Subject: [PATCH 0052/1709] New translations index.json (Spanish) --- website/src/pages/es/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/es/index.json b/website/src/pages/es/index.json index 2c1eeb105f26..921acbc3d2a5 100644 --- a/website/src/pages/es/index.json +++ b/website/src/pages/es/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Corrientes secundarias", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From f63d23f87117d45afcb7d45d2f97766f37206c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:08 -0400 Subject: [PATCH 0053/1709] New translations index.json (Arabic) --- website/src/pages/ar/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ar/index.json b/website/src/pages/ar/index.json index 2443372843a8..e26aa5f61165 100644 --- a/website/src/pages/ar/index.json +++ b/website/src/pages/ar/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "متعدد-السلاسل", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From c4ae2137b59cb7e3c4b8d39c59323ea69ebc0166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:09 -0400 Subject: [PATCH 0054/1709] New translations index.json (Czech) --- website/src/pages/cs/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/cs/index.json b/website/src/pages/cs/index.json index 545b2b717b56..c2b98123b2f8 100644 --- a/website/src/pages/cs/index.json +++ b/website/src/pages/cs/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Průzkumník grafů", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 6ce98d1d79efb51e07c9f90f568b2d3011c01978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:10 -0400 Subject: [PATCH 0055/1709] New translations index.json (German) --- website/src/pages/de/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/de/index.json b/website/src/pages/de/index.json index b56ea56c5897..2bc35f433737 100644 --- a/website/src/pages/de/index.json +++ b/website/src/pages/de/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 9a66da928bf87cce54efd1338ce0848b583c0acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:11 -0400 Subject: [PATCH 0056/1709] New translations index.json (Italian) --- website/src/pages/it/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/it/index.json b/website/src/pages/it/index.json index f243894b47b5..a3e1f199da24 100644 --- a/website/src/pages/it/index.json +++ b/website/src/pages/it/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From e00db0876460962d10e3f6e3ad9bb8558702eafd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:12 -0400 Subject: [PATCH 0057/1709] New translations index.json (Japanese) --- website/src/pages/ja/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ja/index.json b/website/src/pages/ja/index.json index 2034192e0089..589057c828e9 100644 --- a/website/src/pages/ja/index.json +++ b/website/src/pages/ja/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "サブストリーム", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "グラフエクスプローラ", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From f86ea140d2dcad68aeaf0e1184d33f38a9b86e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:14 -0400 Subject: [PATCH 0058/1709] New translations index.json (Korean) --- website/src/pages/ko/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ko/index.json b/website/src/pages/ko/index.json index 95bf30d1752a..59e8e3dc4c44 100644 --- a/website/src/pages/ko/index.json +++ b/website/src/pages/ko/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 29d2f5d45c91fe8fd97863b5f48fa9e7d2466596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:15 -0400 Subject: [PATCH 0059/1709] New translations index.json (Dutch) --- website/src/pages/nl/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/nl/index.json b/website/src/pages/nl/index.json index 200a19192e1c..2abb81fe6aac 100644 --- a/website/src/pages/nl/index.json +++ b/website/src/pages/nl/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Verkenner", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From a7c00289e15e5ce0159defbc4a56d2ba99bcd5c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:16 -0400 Subject: [PATCH 0060/1709] New translations index.json (Polish) --- website/src/pages/pl/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/pl/index.json b/website/src/pages/pl/index.json index ca9ba66107b7..fe69cac3c6b7 100644 --- a/website/src/pages/pl/index.json +++ b/website/src/pages/pl/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 0b498e7d56fdf3eb7598603444dcd917efd4666b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:18 -0400 Subject: [PATCH 0061/1709] New translations index.json (Portuguese) --- website/src/pages/pt/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/pt/index.json b/website/src/pages/pt/index.json index 0fe9ac551a34..19e12670e0bf 100644 --- a/website/src/pages/pt/index.json +++ b/website/src/pages/pt/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 16bd8637b55b2c1af1733323f7ad7d2682c3ba7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:19 -0400 Subject: [PATCH 0062/1709] New translations index.json (Russian) --- website/src/pages/ru/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ru/index.json b/website/src/pages/ru/index.json index 28d369ba865d..41a841b6be9a 100644 --- a/website/src/pages/ru/index.json +++ b/website/src/pages/ru/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Субпотоки", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 3d39b630af9b6a3b0c15eccb2e5eb428435c5555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:20 -0400 Subject: [PATCH 0063/1709] New translations index.json (Swedish) --- website/src/pages/sv/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/sv/index.json b/website/src/pages/sv/index.json index 23a97080ffc1..3f84b3b849b4 100644 --- a/website/src/pages/sv/index.json +++ b/website/src/pages/sv/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Underströmmar", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graf Utforskaren", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From ba3b44c5f448b18b443ab691419e8fc00ad8bb00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:22 -0400 Subject: [PATCH 0064/1709] New translations index.json (Turkish) --- website/src/pages/tr/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/tr/index.json b/website/src/pages/tr/index.json index 7a721a844042..b4ccaa3a9195 100644 --- a/website/src/pages/tr/index.json +++ b/website/src/pages/tr/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substream'ler", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Gezgini", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 29b44b21cda3b9dc0c2f726e2d77cc7bfd721865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:23 -0400 Subject: [PATCH 0065/1709] New translations index.json (Ukrainian) --- website/src/pages/uk/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/uk/index.json b/website/src/pages/uk/index.json index 2e98e3092a7e..9835101379a4 100644 --- a/website/src/pages/uk/index.json +++ b/website/src/pages/uk/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From f179d3e93f4c5400e0dd4e33c1811d2de976f133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:24 -0400 Subject: [PATCH 0066/1709] New translations index.json (Chinese Simplified) --- website/src/pages/zh/index.json | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/zh/index.json b/website/src/pages/zh/index.json index e82bc7f27a27..4bcbbdc1fce9 100644 --- a/website/src/pages/zh/index.json +++ b/website/src/pages/zh/index.json @@ -79,9 +79,21 @@ "title": "子图快速入门", "description": "开始你的旅程进入子图开发。" }, - "substreams": { - "title": "子流", - "description": "用于实时索引的流高速数据。" + "substreamsQuickStart": { + "title": "Substreams quick start", + "description": "Stream high-speed data for real-time indexing." + }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph 浏览器", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "访问教程、模板和文档以建立自定义数据模块。" }, "timeseries": { "title": "时间序列和聚合", @@ -99,7 +111,7 @@ "nonEvm": { "officialDocs": { "title": "官方子流文档", - "description": "用于实时索引的流高速数据。" + "description": "Stream high-speed data for real-time indexing." }, "spsIntro": { "title": "Substreams驱动的子图的常见问题", @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "访问教程、模板和文档以建立自定义数据模块。" }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "子流启动器", "description": "利用这个锅炉板来创建您的第一个子流模块。" }, "substreamsRepo": { - "title": "子流仓库", + "title": "Substreams GitHub repository", "description": "研究、促进或定制核心子流框架。" } } From ebfe96d876e7c3ddff6c2f7aad4da0448acb3142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:25 -0400 Subject: [PATCH 0067/1709] New translations index.json (Urdu (Pakistan)) --- website/src/pages/ur/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/ur/index.json b/website/src/pages/ur/index.json index ba4e9527fa53..16ad53e143ff 100644 --- a/website/src/pages/ur/index.json +++ b/website/src/pages/ur/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "سب سٹریمز", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "گراف ایکسپلورر", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From cfe18f2526ae1e1b8c28d31d1f1974cb7892a4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:26 -0400 Subject: [PATCH 0068/1709] New translations index.json (Vietnamese) --- website/src/pages/vi/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/vi/index.json b/website/src/pages/vi/index.json index 2793483b60d9..e9cddd69d9ef 100644 --- a/website/src/pages/vi/index.json +++ b/website/src/pages/vi/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "Substreams", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Trình khám phá Graph", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 4038e66efff282db07ead96434cd92cecc9e03dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:27 -0400 Subject: [PATCH 0069/1709] New translations index.json (Marathi) --- website/src/pages/mr/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/mr/index.json b/website/src/pages/mr/index.json index add2f95c68b0..ab39f74bbdf9 100644 --- a/website/src/pages/mr/index.json +++ b/website/src/pages/mr/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "उपप्रवाह", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 1c85051e64111ed74951bd7176c287b0321fbc85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 03:27:29 -0400 Subject: [PATCH 0070/1709] New translations index.json (Hindi) --- website/src/pages/hi/index.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/website/src/pages/hi/index.json b/website/src/pages/hi/index.json index 006af907dc33..14a53be3ec2c 100644 --- a/website/src/pages/hi/index.json +++ b/website/src/pages/hi/index.json @@ -79,10 +79,22 @@ "title": "Subgraph quick start", "description": "Kickstart your journey into subgraph development." }, - "substreams": { - "title": "सबस्ट्रीम", + "substreamsQuickStart": { + "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, + "tokenapi": { + "title": "The Graph's Token API", + "description": "Query token data and leverage native MCP support." + }, + "graphExplorer": { + "title": "Graph Explorer", + "description": "Find and query existing blockchain data." + }, + "substreamsDev": { + "title": "Substreams.dev", + "description": "Access tutorials, templates, and documentation to build custom data modules." + }, "timeseries": { "title": "Timeseries & Aggregations", "description": "Learn to track metrics like daily volumes or user growth." @@ -109,12 +121,16 @@ "title": "Substreams.dev", "description": "Access tutorials, templates, and documentation to build custom data modules." }, + "customSubstreamsSinks": { + "title": "Custom Substreams Sinks", + "description": "Leverage existing Substreams sinks to access data." + }, "substreamsStarter": { "title": "Substreams starter", "description": "Leverage this boilerplate to create your first Substreams module." }, "substreamsRepo": { - "title": "Substreams repo", + "title": "Substreams GitHub repository", "description": "Study, contribute to, or customize the core Substreams framework." } } From 08f91591f43957ef44054de025a301a60b935d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:19 -0400 Subject: [PATCH 0071/1709] New translations quick-start.mdx (Romanian) --- website/src/pages/ro/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/token-api/quick-start.mdx b/website/src/pages/ro/token-api/quick-start.mdx index 4653c3d41ac6..ef67bed88a5d 100644 --- a/website/src/pages/ro/token-api/quick-start.mdx +++ b/website/src/pages/ro/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 7282ed2f1ce264dc3425226b96635cea9a149c1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:20 -0400 Subject: [PATCH 0072/1709] New translations quick-start.mdx (French) --- website/src/pages/fr/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/token-api/quick-start.mdx b/website/src/pages/fr/token-api/quick-start.mdx index 4a38a878fd7c..40452d9f419a 100644 --- a/website/src/pages/fr/token-api/quick-start.mdx +++ b/website/src/pages/fr/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prérequis -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 86ff34be4e4b94a3ce4d8c525351cd0006080f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:21 -0400 Subject: [PATCH 0073/1709] New translations quick-start.mdx (Spanish) --- website/src/pages/es/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/token-api/quick-start.mdx b/website/src/pages/es/token-api/quick-start.mdx index 8488268e1356..1af940b5b68f 100644 --- a/website/src/pages/es/token-api/quick-start.mdx +++ b/website/src/pages/es/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From b5c48f4bcf160150223a4b60b98c5b423b358505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:22 -0400 Subject: [PATCH 0074/1709] New translations quick-start.mdx (Arabic) --- website/src/pages/ar/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/token-api/quick-start.mdx b/website/src/pages/ar/token-api/quick-start.mdx index c5fa07fa9371..ff1a58015fc0 100644 --- a/website/src/pages/ar/token-api/quick-start.mdx +++ b/website/src/pages/ar/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 31ac9207850b64106cd92019104013576e9e4d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:23 -0400 Subject: [PATCH 0075/1709] New translations quick-start.mdx (Czech) --- website/src/pages/cs/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/token-api/quick-start.mdx b/website/src/pages/cs/token-api/quick-start.mdx index 4083154b5a8b..454ffd30b02f 100644 --- a/website/src/pages/cs/token-api/quick-start.mdx +++ b/website/src/pages/cs/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From df07511741711d983df7f2209ee39451718e8c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:25 -0400 Subject: [PATCH 0076/1709] New translations quick-start.mdx (German) --- website/src/pages/de/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/token-api/quick-start.mdx b/website/src/pages/de/token-api/quick-start.mdx index b84fad5f665a..b4074258c581 100644 --- a/website/src/pages/de/token-api/quick-start.mdx +++ b/website/src/pages/de/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Voraussetzungen -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 4ed90a574b247a1a162fc657c9ab3e19fb28b9fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:26 -0400 Subject: [PATCH 0077/1709] New translations quick-start.mdx (Italian) --- website/src/pages/it/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/token-api/quick-start.mdx b/website/src/pages/it/token-api/quick-start.mdx index 4653c3d41ac6..ef67bed88a5d 100644 --- a/website/src/pages/it/token-api/quick-start.mdx +++ b/website/src/pages/it/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 1b4f6be39aa05409eb7c5e9ca7cd12626ca64a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:27 -0400 Subject: [PATCH 0078/1709] New translations quick-start.mdx (Japanese) --- website/src/pages/ja/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/token-api/quick-start.mdx b/website/src/pages/ja/token-api/quick-start.mdx index 0b64515243cb..059a2f43984d 100644 --- a/website/src/pages/ja/token-api/quick-start.mdx +++ b/website/src/pages/ja/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 2228e308b1e1e38726762c71364c57c1c41d64cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:28 -0400 Subject: [PATCH 0079/1709] New translations quick-start.mdx (Korean) --- website/src/pages/ko/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/token-api/quick-start.mdx b/website/src/pages/ko/token-api/quick-start.mdx index 4653c3d41ac6..ef67bed88a5d 100644 --- a/website/src/pages/ko/token-api/quick-start.mdx +++ b/website/src/pages/ko/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 46ebf545bb44bcad7a8602e2d52b51b24d6f8ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:30 -0400 Subject: [PATCH 0080/1709] New translations quick-start.mdx (Dutch) --- website/src/pages/nl/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/token-api/quick-start.mdx b/website/src/pages/nl/token-api/quick-start.mdx index b1b07812ba97..b2c498a85f80 100644 --- a/website/src/pages/nl/token-api/quick-start.mdx +++ b/website/src/pages/nl/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 5b180afd8dd3d2d2f3b6e73c52077a827ec857e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:31 -0400 Subject: [PATCH 0081/1709] New translations quick-start.mdx (Polish) --- website/src/pages/pl/token-api/quick-start.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/src/pages/pl/token-api/quick-start.mdx b/website/src/pages/pl/token-api/quick-start.mdx index 05884b06caab..20663af633f4 100644 --- a/website/src/pages/pl/token-api/quick-start.mdx +++ b/website/src/pages/pl/token-api/quick-start.mdx @@ -1,6 +1,6 @@ --- title: Token API Quick Start -sidebarTitle: ' Na start' +sidebarTitle: " Na start" --- ![The Graph Token API Quick Start banner](/img/token-api-quickstart-banner.jpg) @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From e685c583124ceaab013ae86f3f23001b5fb8b0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:32 -0400 Subject: [PATCH 0082/1709] New translations quick-start.mdx (Portuguese) --- website/src/pages/pt/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/token-api/quick-start.mdx b/website/src/pages/pt/token-api/quick-start.mdx index 32882f96458c..6ffc93937703 100644 --- a/website/src/pages/pt/token-api/quick-start.mdx +++ b/website/src/pages/pt/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Pré-requisitos -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 833aa617fcf343e7b9fd84b568ef8d9bfc42d43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:33 -0400 Subject: [PATCH 0083/1709] New translations quick-start.mdx (Russian) --- website/src/pages/ru/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/token-api/quick-start.mdx b/website/src/pages/ru/token-api/quick-start.mdx index a878bea36a20..59d60750c989 100644 --- a/website/src/pages/ru/token-api/quick-start.mdx +++ b/website/src/pages/ru/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Предварительные требования -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From b74b8f7c7be2b8f96bdbecb5f7f9791ecd90c6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:34 -0400 Subject: [PATCH 0084/1709] New translations quick-start.mdx (Swedish) --- website/src/pages/sv/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/token-api/quick-start.mdx b/website/src/pages/sv/token-api/quick-start.mdx index db512ba0d7f8..4fabbaccb36e 100644 --- a/website/src/pages/sv/token-api/quick-start.mdx +++ b/website/src/pages/sv/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From b82aaa58c1461f0ff1a848c2dc0bf59723f5540a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:36 -0400 Subject: [PATCH 0085/1709] New translations quick-start.mdx (Turkish) --- website/src/pages/tr/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/token-api/quick-start.mdx b/website/src/pages/tr/token-api/quick-start.mdx index 18629312033a..b321575025e9 100644 --- a/website/src/pages/tr/token-api/quick-start.mdx +++ b/website/src/pages/tr/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From a96cd39ee0e4d6a7caec9421a28ab5e1b170f243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:37 -0400 Subject: [PATCH 0086/1709] New translations quick-start.mdx (Ukrainian) --- website/src/pages/uk/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/token-api/quick-start.mdx b/website/src/pages/uk/token-api/quick-start.mdx index 69a5a4d298d3..ea80878a9a0d 100644 --- a/website/src/pages/uk/token-api/quick-start.mdx +++ b/website/src/pages/uk/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 3a8e0077196a107f0287866fc32966b7ad7c527a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:38 -0400 Subject: [PATCH 0087/1709] New translations quick-start.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/token-api/quick-start.mdx b/website/src/pages/zh/token-api/quick-start.mdx index f55201103dc4..314459353ca6 100644 --- a/website/src/pages/zh/token-api/quick-start.mdx +++ b/website/src/pages/zh/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Graph的 代币API允许您通过 GET 请求访问区块链代币信息。 ## 先决条件 -在您开始之前,通过注册[The Graph市场](https://thegraph.market/),获得一个 JWT 代币。 您可以使用下拉菜单为您的API密钥生成一个 JWT 代币。 +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## 认证 -所有API端点都使用插入头中的JWT代币进行身份验证,该代币名为`Authorization: Bearer `。 +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 29e92b05fb9a1e7915ee9deba1fe5a1d17140e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:39 -0400 Subject: [PATCH 0088/1709] New translations quick-start.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/token-api/quick-start.mdx b/website/src/pages/ur/token-api/quick-start.mdx index 0efd314e3281..d3e0152a21b7 100644 --- a/website/src/pages/ur/token-api/quick-start.mdx +++ b/website/src/pages/ur/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From e08b337a8df32151c4ffe4d9f567075c58c65385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:40 -0400 Subject: [PATCH 0089/1709] New translations quick-start.mdx (Vietnamese) --- website/src/pages/vi/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/token-api/quick-start.mdx b/website/src/pages/vi/token-api/quick-start.mdx index 4a426052097d..93a5eae55597 100644 --- a/website/src/pages/vi/token-api/quick-start.mdx +++ b/website/src/pages/vi/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From f59ca8ead4d497a98110b58faeb04cdbfba291d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:41 -0400 Subject: [PATCH 0090/1709] New translations quick-start.mdx (Marathi) --- website/src/pages/mr/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/token-api/quick-start.mdx b/website/src/pages/mr/token-api/quick-start.mdx index 427bd0f2a59b..9b6f9bb125a6 100644 --- a/website/src/pages/mr/token-api/quick-start.mdx +++ b/website/src/pages/mr/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## Prerequisites -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From bfaf8c3093e46cf75b0f72124af119039400b557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 9 Apr 2025 20:19:42 -0400 Subject: [PATCH 0091/1709] New translations quick-start.mdx (Hindi) --- website/src/pages/hi/token-api/quick-start.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/token-api/quick-start.mdx b/website/src/pages/hi/token-api/quick-start.mdx index a381a3c8565c..494416568dc4 100644 --- a/website/src/pages/hi/token-api/quick-start.mdx +++ b/website/src/pages/hi/token-api/quick-start.mdx @@ -13,11 +13,11 @@ The Token API provides access to onchain token data, including balances, holders ## आवश्यक शर्तें -Before you begin, get a JWT token by signing up on [The Graph Market](https://thegraph.market/). You can generate a JWT token for each of your API keys using the dropdown menu. +Before you begin, get a JWT API token by signing up on [The Graph Market](https://thegraph.market/). Make sure to use the JWT API Token, not the API key. Each API key can generate a new JWT API Token at any time. ## Authentication -All API endpoints are authenticated using a JWT token inserted in the header as `Authorization: Bearer `. +All API endpoints are authenticated using a JWT API token inserted in the header as `Authorization: Bearer `. ```json { From 1bc112654625a648540b3f4785ba78da8beefeb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:31 -0400 Subject: [PATCH 0092/1709] New translations quick-start.mdx (German) --- .../src/pages/de/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/de/subgraphs/quick-start.mdx b/website/src/pages/de/subgraphs/quick-start.mdx index 4608dc407ca7..120831ea9ab2 100644 --- a/website/src/pages/de/subgraphs/quick-start.mdx +++ b/website/src/pages/de/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Schnellstart --- -Erfahren Sie, wie Sie auf einfache Weise einen [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) auf The Graph erstellen, veröffentlichen und abfragen können. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Voraussetzungen - Eine Krypto-Wallet -- Eine Smart-Contract-Adresse in einem [unterstützten Netzwerk](/supported-networks/ -- [Node.js](https://nodejs.org/) installiert -- Ein Paketmanager Ihrer Wahl (`npm`, `yarn` oder `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## Wie man einen Subgraphen erstellt ### 1. Erstellen Sie einen Subgraphen in Subgraph Studio -Gehen Sie zu [Subgraph Studio] (https://thegraph.com/studio/) und verbinden Sie Ihre Wallet. - -Mit Subgraph Studio können Sie Subgraphen erstellen, verwalten, bereitstellen und veröffentlichen sowie API-Schlüssel erstellen und verwalten. - -Klicken Sie auf „Einen Subgraphen erstellen“. Es wird empfohlen, den Subgraph in Title Case zu benennen: „Subgraph Name Chain Name“. +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Installieren der Graph-CLI @@ -37,20 +41,22 @@ Verwendung von [yarn] (https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialisieren Sie Ihren Subgraphen +Verify install: -> Sie finden die Befehle für Ihren spezifischen Subgraphen auf der Subgraphen-Seite in [Subgraph Studio] (https://thegraph.com/studio/). +```sh +graph --version +``` -Der Befehl `graph init` erstellt automatisch ein Gerüst eines Subgraphen auf der Grundlage der Ereignisse Ihres Vertrags. +### 3. Initialisieren Sie Ihren Subgraphen -Der folgende Befehl initialisiert Ihren Subgraphen anhand eines bestehenden Vertrags: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -Wenn Ihr Vertrag auf dem jeweiligen Blockscanner, auf dem er eingesetzt wird (z. B. [Etherscan](https://etherscan.io/)), verifiziert wird, wird die ABI automatisch im CLI erstellt. - Wenn Sie Ihren Subgraphen initialisieren, werden Sie von der CLI nach den folgenden Informationen gefragt: - **Protokoll**: Wählen Sie das Protokoll, mit dem Ihr Subgraph Daten indizieren soll. @@ -59,19 +65,17 @@ Wenn Sie Ihren Subgraphen initialisieren, werden Sie von der CLI nach den folgen - **Ethereum-Netzwerk** (optional): Möglicherweise müssen Sie angeben, von welchem EVM-kompatiblen Netzwerk Ihr Subgraph Daten indizieren soll. - **Vertragsadresse**: Suchen Sie die Adresse des Smart Contracts, von dem Sie Daten abfragen möchten. - **ABI**: Wenn die ABI nicht automatisch ausgefüllt wird, müssen Sie sie manuell in eine JSON-Datei eingeben. -- **Startblock**: Sie sollten den Startblock eingeben, um die Subgraph-Indizierung von Blockchain-Daten zu optimieren. Ermitteln Sie den Startblock, indem Sie den Block suchen, in dem Ihr Vertrag bereitgestellt wurde. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Vertragsname**: Geben Sie den Namen Ihres Vertrags ein. - **Vertragsereignisse als Entitäten indizieren**: Es wird empfohlen, dies auf „true“ zu setzen, da es automatisch Mappings zu Ihrem Subgraph für jedes emittierte Ereignis hinzufügt. - **Einen weiteren Vertrag hinzufügen** (optional): Sie können einen weiteren Vertrag hinzufügen. -Der folgende Screenshot zeigt ein Beispiel dafür, was Sie bei der Initialisierung Ihres Subgraphen erwarten können: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph-Befehl](/img/CLI-Example.png) ### 4. Bearbeiten Sie Ihren Subgraphen -Der `init`-Befehl im vorherigen Schritt erzeugt einen Gerüst-Subgraphen, den Sie als Ausgangspunkt für den Aufbau Ihres Subgraphen verwenden können. - Wenn Sie Änderungen am Subgraphen vornehmen, werden Sie hauptsächlich mit drei Dateien arbeiten: - Manifest (`subgraph.yaml`) - definiert, welche Datenquellen Ihr Subgraph indizieren wird. @@ -82,9 +86,7 @@ Eine detaillierte Aufschlüsselung, wie Sie Ihren Subgraphen schreiben, finden S ### 5. Verteilen Sie Ihren Subgraphen -> Denken Sie daran, dass die Bereitstellung nicht dasselbe ist wie die Veröffentlichung. - -Wenn Sie einen Subgraphen **breitstellen**, schieben Sie ihn in das [Subgraph Studio] (https://thegraph.com/studio/), wo Sie ihn testen, einstellen und überprüfen können. Die Indizierung eines bereitgestellten Subgraphen wird vom [Upgrade Indexierer](https://thegraph.com/blog/upgrade-indexer/) durchgeführt, der ein einzelner Indexierer ist, der von Edge & Node betrieben wird, und nicht von den vielen dezentralen Indexierern im Graph Network. Ein **eingesetzter** Subgraph ist frei nutzbar, ratenbegrenzt, für die Öffentlichkeit nicht sichtbar und für Entwicklungs-, Staging- und Testzwecke gedacht. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Sobald Ihr Subgraph geschrieben ist, führen Sie die folgenden Befehle aus: @@ -107,8 +109,6 @@ graph deploy ``` ```` -Die CLI fragt nach einer Versionsbezeichnung. Es wird dringend empfohlen, [semantische Versionierung](https://semver.org/) zu verwenden, z.B. `0.0.1`. - ### 6. Überprüfen Sie Ihren Subgraphen Wenn Sie Ihren Subgraph vor der Veröffentlichung testen möchten, können Sie mit [Subgraph Studio] (https://thegraph.com/studio/) Folgendes tun: @@ -125,55 +125,13 @@ Wenn Ihr Subgraph bereit für eine Produktionsumgebung ist, können Sie ihn im d - Es macht Ihren Subgraphen verfügbar, um von den dezentralisierten [Indexierers](/indexing/overview/) auf The Graph Network indiziert zu werden. - Sie hebt Ratenbeschränkungen auf und macht Ihren Subgraphen öffentlich durchsuchbar und abfragbar im [Graph Explorer] (https://thegraph.com/explorer/). -- Es macht Ihren Subgraphen für [Kuratoren](/resources/roles/curating/) verfügbar, um ihn zu kuratieren. - -> Je mehr GRT Sie und andere auf Ihrem Subgraph kuratieren, desto mehr Indexierer werden dazu angeregt, Ihren Subgraphen zu indizieren, was die Servicequalität verbessert, die Latenzzeit reduziert und die Netzwerkredundanz für Ihren Subgraphen erhöht. - -#### Veröffentlichung mit Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -Um Ihren Subgraphen zu veröffentlichen, klicken Sie auf die Schaltfläche "Veröffentlichen" im Dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Veröffentlichen eines Subgraphen auf Subgraph Studio](/img/publish-sub-transfer.png) -Wählen Sie das Netzwerk aus, in dem Sie Ihren Subgraphen veröffentlichen möchten. - -#### Veröffentlichen über die CLI - -Ab Version 0.73.0 können Sie Ihren Subgraphen auch mit dem Graph CLI veröffentlichen. - -Öffnen Sie den `graph-cli`. - -Verwenden Sie die folgenden Befehle: - -```` -```sh -graph codegen && graph build -``` - -Dann, - -```sh -graph publish -``` -```` - -3. Es öffnet sich ein Fenster, in dem Sie Ihre Wallet verbinden, Metadaten hinzufügen und Ihren fertigen Subgraphen in einem Netzwerk Ihrer Wahl bereitstellen können. - -![cli-ui](/img/cli-ui.png) - -Wie Sie Ihre Bereitstellung anpassen können, erfahren Sie unter [Veröffentlichen eines Subgraphen](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Hinzufügen von Signalen zu Ihrem Subgraphen - -1. Um Indexierer für die Abfrage Ihres Subgraphen zu gewinnen, sollten Sie ihn mit einem GRT-Kurationssignal versehen. - - - Diese Maßnahme verbessert die Servicequalität, verringert die Latenz und erhöht die Netzwerkredundanz und -verfügbarkeit für Ihren Subgraphen. - -2. Indexer erhalten GRT Rewards auf der Grundlage des signalisierten Betrags, wenn sie für Indexing Rewards in Frage kommen. - - - Es wird empfohlen, mindestens 3.000 GRT zu kuratieren, um 3 Indexierer zu gewinnen. Prüfen Sie die Berechtigung zur Belohnung anhand der Nutzung der Subgraph-Funktion und der unterstützten Netzwerke. - -Um mehr über das Kuratieren zu erfahren, lesen Sie [Kuratieren](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. Um Gaskosten zu sparen, können Sie Ihren Subgraphen in der gleichen Transaktion kuratieren, in der Sie ihn veröffentlichen, indem Sie diese Option wählen: From 210e4f2f4aed72582bda36775cc80fcc5440238c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:32 -0400 Subject: [PATCH 0093/1709] New translations quick-start.mdx (Portuguese) --- .../src/pages/pt/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/pt/subgraphs/quick-start.mdx b/website/src/pages/pt/subgraphs/quick-start.mdx index 9fda78533084..2868b76181d9 100644 --- a/website/src/pages/pt/subgraphs/quick-start.mdx +++ b/website/src/pages/pt/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Começo Rápido --- -Aprenda como construir, editar, e solicitar queries de um [subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) do The Graph com facilidade. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Pré-requisitos - Uma carteira de criptomoedas -- Um endereço de contrato inteligente numa [rede apoiada](/supported-networks/) -- Ter o [Node.js](https://nodejs.org/) instalado -- Um gestor de pacotes da sua escolha (`npm`, `yarn` ou `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## Como Construir um Subgraph ### 1. Crie um subgraph no Subgraph Studio -Entre no [Subgraph Studio](https://thegraph.com/studio/) e conecte a sua carteira de criptomoedas. - -O Subgraph Studio permite a criação, gestão, implantação e edição de subgraphs, assim como a criação e a gestão de chaves de API. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Como instalar o Graph CLI @@ -37,20 +41,22 @@ Uso de [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Inicialize o seu Subgraph +Verify install: -> Veja comandos para o seu subgraph específico na página do subgraph no [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -O comando `graph init` criará automaticamente uma estrutura de subgraph com base nos eventos do seu contrato. +### 3. Inicialize o seu Subgraph -O comando a seguir inicializa o seu subgraph a partir de um contrato existente: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -Se o seu contrato for verificado no scanner de blocos respetivo onde foi implantado (por exemplo, [Etherscan](https://etherscan.io/)), a interface binária de aplicativo será criada na CLI. - Ao inicializar o seu subgraph, a CLI pedirá pelas seguintes informações: - **Protocolo:** Escolha o protocolo do qual o seu subgraph indexará dados. @@ -59,19 +65,17 @@ Ao inicializar o seu subgraph, a CLI pedirá pelas seguintes informações: - **Rede Ethereum** (opcional): é possível que tenha de especificar a rede compatível com EVM de onde o seu subgraph indexará dados. - **Endereço de contrato:** Localize o endereço do contrato inteligente do qual quer solicitar dados por queries. - **ABI (interface binária de aplicativo):** Se a ABI não estiver preenchida automaticamente, insira-a manualmente como um arquivo JSON. -- **Bloco Inicial:** Insira o bloco inicial para poupar tempo enquanto o seu subgraph indexa dados da blockchain. O bloco inicial pode ser localizado ao encontrar o bloco onde o seu contrato foi implantado. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Nome do Contrato:** Insira o nome do seu contrato. - **Indexar eventos de contrato como entidades:** Sugerimos configurar isto como `true`, já que ele automaticamente adicionará mapeamentos ao seu subgraph para cada evento emitido. - **Adicionar outro contrato** (opcional): também é possível adicionar outro contrato. -Veja a imagem a seguir para um exemplo do que esperar quando for inicializar o seu subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Comando do subgraph](/img/CLI-Example.png) ### 4. Revise o seu Subgraph -O comando `init` no passo anterior cria uma estrutura de subgraph que pode ser usada como ponto de início para construir o seu subgraph. - Enquanto faz mudanças ao subgraph, você trabalhará principalmente com três arquivos: - Manifest (`subgraph.yaml`) — define quais fontes de dados serão indexadas pelos seus subgraphs. @@ -82,9 +86,7 @@ Para mais informações sobre como escrever o seu subgraph, veja [Como Criar um ### 5. Implante o seu subgraph -> Lembre-se: implantar não é o mesmo que editar. - -Ao **implantar** um subgraph, você o envia para o [Subgraph Studio](https://thegraph.com/studio/), onde ele pode ser testado, preparado e revisto. A indexação de um subgraph implantado é realizada pelo [Indexador de Atualização](https://thegraph.com/blog/upgrade-indexer/), que é um único Indexador operado pela Edge & Node (que também é a proprietária do mesmo), em vez dos muitos indexadores descentralizados na The Graph Network. Um subgraph **implantado** é gratuito para uso, limitado por taxa, não visível ao público e destinado a fins de programação, preparação e teste. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Quando o seu subgraph estiver pronto, execute os seguintes comandos: @@ -107,8 +109,6 @@ graph deploy ``` ```` -A CLI solicitará um rótulo de versão. Recomendamos fortemente que use [controle semântico de versão](https://semver.org/); por exemplo, `0.0.1`. - ### 6. Analise o seu subgraph Se quiser testar o seu subgraph antes de editá-lo, use o [Subgraph Studio](https://thegraph.com/studio/) para: @@ -125,55 +125,13 @@ Quando o seu subgraph estiver pronto para um ambiente de produção, ele pode se - Torna o seu subgraph disponível para indexação pelos [indexadores](/indexing/overview/) descentralizados na The Graph Network. - Remove limites de taxa, e torna o seu subgraph disponível a buscas e queries no [Graph Explorer](https://thegraph.com/explorer/). -- Disponibiliza o seu subgraph para curadoria por [Curadores](/resources/roles/curating/). - -> Quanto maior a quantia de GRT selecionada por você e outros no seu subgraph, mais os indexadores serão incentivados a indexar o seu subgraph, o que melhora a qualidade do serviço, reduz a latência, e aprimora a redundância de rede para o seu subgraph. - -#### Como Editar com o Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -Para editar o seu subgraph, clique no botão Publish ("Editar") no painel de controlo. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Edite um subgraph no Subgraph Studio](/img/publish-sub-transfer.png) -Selecione a rede onde deseja editar o seu subgraph. - -#### Publicação da CLI - -Desde a versão 0.73.0, é possível editar o seu subgraph com a Graph CLI. - -Abra a `graph-cli`. - -Use os seguintes comandos: - -```` -```sh -graph codegen && graph build -``` - -Depois, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -Para personalizar a sua implantação, veja [Como Editar um Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. Para atrair Indexadores de modo a fazer queries no seu subgraph, adicione um sinal de curadoria de GRT a ele. - - - Isto melhora a qualidade do serviço, reduz a latência, e aprimora a redundância e a disponibilidade da rede para o seu subgraph. - -2. Se tiverem direito a recompensas por indexação, os Indexadores recebem recompensas em GRT com base na quantia sinalizada. - - - Recomendamos curar pelo menos 3.000 GRT para atrair 3 Indexadores. Verifique a elegibilidade de recompensas com base no uso de funções do subgraph e nas redes apoiadas. - -Para saber mais sobre curadoria, clique [aqui](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. Para economizar gás, é possível selecionar o seu subgraph na mesma transação em que o edita através desta opção: From 5654982c0f5d775dffed4d90c7cb6874ee8193fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:33 -0400 Subject: [PATCH 0094/1709] New translations quick-start.mdx (Russian) --- .../src/pages/ru/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ru/subgraphs/quick-start.mdx b/website/src/pages/ru/subgraphs/quick-start.mdx index c676f1cf698d..0a60f184d203 100644 --- a/website/src/pages/ru/subgraphs/quick-start.mdx +++ b/website/src/pages/ru/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Быстрый старт --- -Узнайте, как легко создать, опубликовать и запросить [Субграф](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) на The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Предварительные требования - Криптовалютный кошелек -- Адрес смарт-контракта в [поддерживаемой сети](/supported-networks/) -- [Node.js](https://nodejs.org/) установлен -- Менеджер пакетов на Ваш выбор (`npm`, `yarn` или `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## Как создать субграф ### 1. Создайте Субграф в Subgraph Studio -Перейдите в [Subgraph Studio](https://thegraph.com/studio/) и подключите свой кошелек. - -Subgraph Studio позволяет создавать, управлять, развертывать и публиковать Субграфы, а также создавать и управлять API-ключами. - -Нажмите "Создать субграф". Рекомендуется называть субграф с использованием Заглавного регистра: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Установка Graph CLI @@ -37,20 +41,22 @@ npm install -g @graphprotocol/graph-cli@latest yarn global add @graphprotocol/graph-cli ``` -### 3. Инициализируйте ваш субграф +Verify install: -> Вы можете найти команды для вашего конкретного субграфа на странице субграфа в [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -Команда `graph init` автоматически создаст каркас субграфа на основе событий вашего контракта. +### 3. Инициализируйте ваш субграф -Следующая команда инициализирует ваш субграф на основе существующего контракта: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -Если Ваш контракт верифицирован на соответствующем блоксканере, где он развернут (например, [Etherscan](https://etherscan.io/)), то ABI будет автоматически создан в CLI. - Когда вы инициализируете свой субграф, CLI запросит у вас следующую информацию: - **Протокол**: Выберите протокол, данные из которого будет индексировать ваш субграф. @@ -59,19 +65,17 @@ graph init - **Сеть Ethereum** (необязательно): Вам может понадобиться указать, из какой совместимой с EVM сети ваш субграф будет индексировать данные. - **Адрес контракта**: Найдите адрес смарт-контракта, из которого Вы хотите запрашивать данные. - **ABI**: Если ABI не заполнен автоматически, Вам придется ввести его вручную в формате JSON. -- **Начальный блок**: Вы должны ввести начальный блок для оптимизации индексирования данных субграфа. Найдите начальный блок, определив блок, в котором был развернут ваш контракт. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Имя контракта**: Введите имя Вашего контракта. - **Индексирование событий контракта как объектов**: Рекомендуется установить это значение в "true", так как это автоматически добавит мэппинги для каждого сгенерированного события в ваш субграф. - **Добавление еще одного контракта (опционально)**: Вы можете добавить еще один контракт. -Вот скриншот, который демонстрирует, чего ожидать при инициализации вашего субграфа: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Команда субграфа](/img/CLI-Example.png) ### 4. Редактирование вашего субграфа -Команда `init` на предыдущем шаге создает скелет субграфа, который вы можете использовать в качестве отправной точки для создания вашего субграфа. - При внесении изменений в субграф вы будете в основном работать с тремя файлами: - Манифест (`subgraph.yaml`) — определяет, какие источники данных ваш субграф будет индексировать. @@ -82,9 +86,7 @@ graph init ### 5. Развертывание Вашего субграфа -> Помните, развертывание — это не то же самое, что публикация. - -Когда вы **разворачиваете** субграф, вы отправляете его в [Subgraph Studio](https://thegraph.com/studio/), где можете тестировать, настраивать и проверять его. Индексирование развернутого субграфа выполняется с помощью [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), который является единственным Индексатором, принадлежащим и управляемым Edge & Node, а не многими децентрализованными Индексаторами в сети The Graph. **Развернутый** субграф бесплатен для использования, имеет ограничения по количеству запросов, не виден для общественности и предназначен для разработки, настройки и тестирования. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Как только ваш субграф написан, выполните следующие команды: @@ -107,8 +109,6 @@ graph deploy ``` ```` -CLI запросит метку версии. Настоятельно рекомендуется использовать [семантическую версию](https://semver.org/), например, `0.0.1`. - ### 6. Просмотр Вашего субграфа Если вы хотите протестировать свой субграф перед его публикацией, вы можете использовать [Subgraph Studio](https://thegraph.com/studio/) для выполнения следующих действий: @@ -125,55 +125,13 @@ CLI запросит метку версии. Настоятельно реко - Это делает ваш субграф доступным для индексирования децентрализованными [Индексаторами](/indexing/overview/) в сети The Graph. - Это снимает ограничения по количеству запросов и делает ваш субграф общедоступным для поиска и запросов в [Graph Explorer](https://thegraph.com/explorer/). -- Это делает ваш субграф доступным для [Кураторов](/resources/roles/curating/), чтобы они могли его курировать. - -> Чем больше GRT вы и другие курируете на вашем субграфе, тем больше Индексаторов будут мотивированы индексировать ваш субграф, что улучшит качество обслуживания, уменьшит задержку и повысит избыточность сети для вашего субграфа. - -#### Публикация с помощью Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -Чтобы опубликовать ваш субграф, нажмите кнопку "Опубликовать" на панели управления. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Выберите сеть, в которую вы хотите опубликовать свой субграф. - -#### Публикация с помощью CLI - -Начиная с версии 0.73.0, вы также можете опубликовать свой субграф с помощью Graph CLI. - -Откройте `graph-cli`. - -Используйте следующие команды: - -```` -```sh -graph codegen && graph build -``` - -Затем, - -```sh -graph publish -``` -```` - -3. Откроется окно, где Вы сможете подключить свой кошелек, добавить метаданные и развернуть финализированный субграф в выбранной Вами сети. - -![cli-ui](/img/cli-ui.png) - -Чтобы настроить ваше развертывание, смотрите раздел [Публикация субграфа](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Добавление сигнала к Вашему субграфу - -1. Чтобы привлечь Индексаторов для запросов к вашему субграфу, вам следует добавить сигнал курирования GRT. - - - Это действие улучшает качество обслуживания, снижает задержку и повышает сетевую избыточность и доступность для вашего субграфа. - -2. Если индексаторы имеют право на получение вознаграждений за индексацию, они получат вознаграждения в GRT, в соответствии с количеством поданного сигнала. - - - Рекомендуется курировать как минимум 3,000 GRT, чтобы привлечь 3 Индексаторов. Проверьте право на вознаграждения в зависимости от использования функций субграфа и поддерживаемых сетей. - -Чтобы узнать больше о кураторстве, прочитайте статью [Курирование](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. Чтобы сэкономить на газовых расходах, вы можете закрепить свой субграф в той же транзакции, в которой его публикуете, выбрав эту опцию: From dfd4acc3b41e9469f18dc352892c66adc0a6549b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:34 -0400 Subject: [PATCH 0095/1709] New translations quick-start.mdx (Chinese Simplified) --- .../src/pages/zh/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/zh/subgraphs/quick-start.mdx b/website/src/pages/zh/subgraphs/quick-start.mdx index 01a0c5cbcfc5..f6392e4925bd 100644 --- a/website/src/pages/zh/subgraphs/quick-start.mdx +++ b/website/src/pages/zh/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: 快速开始 --- -学习如何轻松地构建、发布和查询The Graph上的 [子图](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph)。 +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## 先决条件 - 一个加密钱包 -- 智能合约在一个[支持网络](/supported-networks/)上的地址 -- [Node.js](https://nodejs.org/) 已安装 -- 您选择的软件包管理器 (`npm`, `yarn` 或 `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## 如何构建子图 ### 1. 在子图工作室中创建子图 -进入[Subgraph Studio](https://thegraph.com/studio/)并连接你的钱包。 - -子图工作室可以让您创建、管理、部署和发布子图,以及创建和管理 API 密钥。 - -点击“创建子图”。建议在标题大小写中为子图命名:“子图名称链名称”。 +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. 安装 Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. 初始化子图 +Verify install: -> 您可以在[Subgraph Studio](https://thegraph.com/studio/)的子图页面找到针对您特定子图的命令。 +```sh +graph --version +``` -`graph init`命令将根据你的合约事件自动创建一个子图的手写。 +### 3. 初始化子图 -以下命令从现有合约初始化你的子图: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -如果您的合约已经在部署的相应拦截扫描仪上进行了验证(例如 [Etherscan](https://etherscan.io/)), 那么自动在 CLI 中创建 ABI 。 - 初始化子图时,CLI工具会要求您提供以下信息: - **协议**:选择子图将要索引数据的协议。 @@ -59,19 +65,17 @@ graph init - **Etherum网络** (可选):您可能需要指定您的子图将索引数据来自哪个EVM兼容网络。 - **合约地址**:找到要查询数据的智能合约地址。 - **ABI**:如果ABI没有自动填充,您需要手动输入JSON文件。 -- **启动Block**:您应该输入起始区块以优化区块链数据的子图索引。 通过找到您的合约部署所在的区块来定位起始区块。 +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **合约名称**:输入合约名称。 - **将合约事件作为实体索引**:建议您将其设置为真。 因为它会自动将映射添加到你的子图中。 - **添加其他合约**(可选):您可以添加其他合约。 -请参阅下面的屏幕截图,以获取初始化子图时所需的示例: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. 编写子图 -上一步的 `init` 命令创建了一个可以用作构建Subgraph起点的 scaffold 子图。 - 在对子图进行修改时,你将主要与三个文件一起工作: - 清单(`subgraph.yaml`)--该清单定义了你的子图将索引哪些数据源。 @@ -82,9 +86,7 @@ graph init ### 5. 部署子图 -> 记住,部署与发布不同。 - -当你**部署**一个Subgraph时,你将它推送到[Subgraph Studio](https://thegraph.com/studio/),在那里你可以测试、分段和查看它。 已部署的子图索引由 [升级索引人](https://thegraph.com/blog/upgrade-indexer/) 执行。 这是一个由Edge & Node拥有和操作的单一索引人,而不是由The Graph网络中许多去中心化的索引人拥有和操作的。 **部署** 子图可自由使用,频率限制,公众看不到,并可用于开发、分阶段和测试。 +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. 一旦您的子图被编写好,请运行以下命令: @@ -107,8 +109,6 @@ graph deploy ``` ```` -CLI 将要求一个版本标签。强烈建议使用 [语义版本](https://semver.org/),例如`0.0.1`。 - ### 6. 审查子图 如果你想在发布之前测试你的子图,你可以使用 [Subgraph Studio](https://thegraph.com/studio/) 来执行以下操作: @@ -125,55 +125,13 @@ CLI 将要求一个版本标签。强烈建议使用 [语义版本](https://semv - 使您的子图可以被去中心化的 [索引人](/indexing/overview/)索引到The Graph网络。 - 取消了费率限制,使你的子图可以公开搜索并可以在 [Graph Explorer](https://thegraph.com/explorer/) 中查询。 -- 使您的子图可供 [策展人](/resources/roles/curating/)进行策展。 - -> 您和其他人在您的子图上策展的GRT数量越多,索引人将会更多地被激励来索引您的子图, 提高服务质量,降低延迟性,并提高子图的网络冗余性。 - -#### 从子图工作室发布 +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -要发布您的子图,请单击仪表盘中的发布按钮。 +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -选择您想要发布子图的网络。 - -#### 从 CLI 发布 - -截止版本 0.73.0 ,您也可以使用 GraphCLI 发布您的子图。 - -打开 `graph-cli`。 - -使用以下命令: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. 一个窗口将打开,允许您连接您的钱包,添加元数据,并将您的最终子图部署到您选择的网络。 - -![cli-ui](/img/cli-ui.png) - -要成功发布您的子图,请査阅[发布子图](/subgraphs/developing/publishing/publishing-a-subgraph/)。 - -#### 将信号添加到您的子图 - -1. 为了吸引索引人查询您的子图,您应该添加 GRT 策展信号。 - - - 此操作可以提高服务质量,减少延迟,提高网络冗余性和子图的可用性。 - -2. 如果符合索引奖励,索引人将根据信号金额获得GRT奖励。 - - - 建议策展至少 3 000GRT 来吸引3个索引人。根据子图功能的使用情况和支持的网络检查奖励资格。 - -要了解更多关于策展的信息,请访问 [Curating](/resources/roles/curating/)。 +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. 为了节省燃气费,您可以通过选择此选项来策展您的子图发布在相同的交易中: From a202326a3ec5aa53b6ab40bffe7bdb5bd1e34f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:36 -0400 Subject: [PATCH 0096/1709] New translations quick-start.mdx (Spanish) --- .../src/pages/es/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/es/subgraphs/quick-start.mdx b/website/src/pages/es/subgraphs/quick-start.mdx index 57d13e479ba2..ae0d63e54b9e 100644 --- a/website/src/pages/es/subgraphs/quick-start.mdx +++ b/website/src/pages/es/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Comienzo Rapido --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - Una wallet crypto -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Instala the graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 0fa5d43a19f91618ee3a539688c23e30afb26662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:37 -0400 Subject: [PATCH 0097/1709] New translations quick-start.mdx (French) --- .../src/pages/fr/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/fr/subgraphs/quick-start.mdx b/website/src/pages/fr/subgraphs/quick-start.mdx index c227ec40ccc7..23c88a13a305 100644 --- a/website/src/pages/fr/subgraphs/quick-start.mdx +++ b/website/src/pages/fr/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Démarrage rapide --- -Apprenez à construire, publier et interroger facilement un [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) sur The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prérequis - Un portefeuille crypto -- Une adresse de contrat intelligent sur un [réseau pris en charge](/supported-networks/) -- [Node.js](https://nodejs.org/) installé -- Un gestionnaire de package de votre choix (`npm`, `yarn` ou `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## Comment construire un subgraph ### 1. Créer un subgraph dans Subgraph Studio -Accédez à [Subgraph Studio](https://thegraph.com/studio/) et connectez votre portefeuille. - -Subgraph Studio vous permet de créer, de gérer, de déployer et de publier des subgraphs, ainsi que de créer et de gérer des clés API. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Installez la CLI Graph @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialiser votre subgraph +Verify install: -> Vous trouverez les commandes pour votre subgraph spécifique sur la page du subgraph dans [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -La commande `graph init` créera automatiquement un échafaudage d'un subgraph basé sur les événements de votre contrat. +### 3. Initialiser votre subgraph -La commande suivante initialise votre subgraph à partir d'un contrat existant : +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -Si votre contrat est vérifié sur le scanner de blocs où il est déployé (comme [Etherscan](https://etherscan.io/)), l'ABI sera automatiquement créé dans le CLI. - Lorsque vous initialisez votre subgraph, la CLI vous demande les informations suivantes : - **Protocole** : Choisissez le protocole à partir duquel votre subgraph indexera les données. @@ -59,19 +65,17 @@ Lorsque vous initialisez votre subgraph, la CLI vous demande les informations su - **Réseau Ethereum** (optionnel) : Vous pouvez avoir besoin de spécifier le réseau compatible EVM à partir duquel votre subgraph indexera les données. - **Adresse du contrat** : Localisez l'adresse du contrat intelligent dont vous souhaitez interroger les données. - **ABI** : Si l'ABI n'est pas renseigné automatiquement, vous devrez le saisir manuellement sous la forme d'un fichier JSON. -- **Bloc de départ** : Vous devez saisir le bloc de départ pour optimiser l'indexation du Subgraph des données de la blockchain. Localisez le bloc de départ en trouvant le bloc où votre contrat a été déployé. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Nom du contrat** : Saisissez le nom de votre contrat. - **Indexer les événements contractuels comme des entités** : Il est conseillé de mettre cette option à true, car elle ajoutera automatiquement des mappages à votre subgraph pour chaque événement émis. - **Ajouter un autre contrat** (facultatif) : Vous pouvez ajouter un autre contrat. -La capture d'écran suivante donne un exemple de ce à quoi on peut s'attendre lors de l'initialisation du subgraph : +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Commande de subgraph](/img/CLI-Example.png) ### 4. Modifiez votre subgraph -La commande `init` de l'étape précédente crée un Subgraph d'échafaudage que vous pouvez utiliser comme point de départ pour construire votre Subgraph. - Lorsque vous modifiez le Subgraph, vous travaillez principalement avec trois fichiers : - Manifest (`subgraph.yaml`) - définit les sources de données que votre Subgraph indexera. @@ -82,9 +86,7 @@ Pour une description détaillée de la manière d'écrire votre Subgraph, consul ### 5. Déployez votre Subgraph -> N'oubliez pas que le déploiement n'est pas la même chose que la publication. - -Lorsque vous **déployez** un Subgraph, vous l'envoyez au [Subgraph Studio](https://thegraph.com/studio/), où vous pouvez le tester, le mettre en scène et le réviser. L'indexation d'un Subgraph déployé est effectuée par l'[Indexeur de mise à niveau](https://thegraph.com/blog/upgrade-indexer/), qui est un indexeur unique détenu et exploité par Edge & Node, plutôt que par les nombreux Indexeurs décentralisés de The Graph Network. Un Subgraph **déployé** est libre d'utilisation, à taux limité, non visible par le public et destiné à être utilisé à des fins de développement, de mise en place et de test. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Une fois que votre Subgraph est écrit, exécutez les commandes suivantes : @@ -107,8 +109,6 @@ graph deploy ``` ```` -La CLI demandera un label de version. Il est fortement recommandé d'utiliser [le versionnement sémantique](https://semver.org/), par exemple `0.0.1`. - ### 6. Examinez votre subgraph Si vous souhaitez tester votre subgraph avant de le publier, vous pouvez utiliser [Subgraph Studio](https://thegraph.com/studio/) pour effectuer les opérations suivantes : @@ -125,55 +125,13 @@ Lorsque votre subgraph est prêt pour un environnement de production, vous pouve - Il rend votre subgraph disponible pour être indexé par les [Indexeurs](/indexing/overview/) décentralisés sur The Graph Network. - Il supprime les limites de taux et rend votre subgraph publiquement consultable et interrogeable dans [Graph Explorer](https://thegraph.com/explorer/). -- Il met votre subgraph à la disposition des [Curateurs](/resources/roles/curating/) pour qu'ils le curent. - -> Plus la quantité de GRT que vous et d'autres personnes curez dans votre subgraph est importante, plus les Indexeurs seront incités à indexer votre subgraph, ce qui améliorera la qualité du service, réduira la latence et renforcera la redondance du réseau pour votre subgraph. - -#### Publier avec Subgraph Studio⁠ +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -Pour publier votre subgraph, cliquez sur le bouton Publier dans le tableau de bord. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publier un subgraph sur Subgraph Studio](/img/publish-sub-transfer.png) -Sélectionnez le réseau dans lequel vous souhaitez publier votre subgraph. - -#### Publication à partir de la CLI - -Depuis la version 0.73.0, vous pouvez également publier votre subgraph à l'aide de Graph CLI. - -Ouvrez le `graph-cli`. - -Utilisez les commandes suivantes : - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -Pour personnaliser votre déploiement, voir [Publier un subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. Pour inciter les Indexeurs à interroger votre subgraph, vous devez y ajouter un signal de curation GRT. - - - Cette action améliore la qualité de service, réduit la latence et améliore la redondance et la disponibilité du réseau pour votre Subgraph. - -2. Si éligibles aux récompenses d'indexation, les Indexeurs reçoivent des récompenses en GRT proportionnelles au montant signalé. - - - Il est recommandé de rassembler au moins 3 000 GRT pour attirer 3 Indexeurs. Vérifiez l'éligibilité des récompenses en fonction de l'utilisation des fonctions du subgraph et des réseaux pris en charge. - -Pour en savoir plus sur la curation, lisez [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. Pour économiser des frais de gas, vous pouvez créer votre subgraph dans la même transaction que vous le publiez en sélectionnant cette option : From 233d75cfe2c5d949bf3578b97591f179039e4565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:38 -0400 Subject: [PATCH 0098/1709] New translations quick-start.mdx (Romanian) --- .../src/pages/ro/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ro/subgraphs/quick-start.mdx b/website/src/pages/ro/subgraphs/quick-start.mdx index a803ac8695fa..b5c4a0fdc09e 100644 --- a/website/src/pages/ro/subgraphs/quick-start.mdx +++ b/website/src/pages/ro/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Quick Start --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 648ba939aaa11bb23a2d29f1596517f7ccf25393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:39 -0400 Subject: [PATCH 0099/1709] New translations quick-start.mdx (Arabic) --- .../src/pages/ar/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ar/subgraphs/quick-start.mdx b/website/src/pages/ar/subgraphs/quick-start.mdx index 9b7bf860e87d..05a51a6a9a02 100644 --- a/website/src/pages/ar/subgraphs/quick-start.mdx +++ b/website/src/pages/ar/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: بداية سريعة --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - محفظة عملات رقمية -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 110be7c8e6a4dd4374d1bf3f0e8180455d86a442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:40 -0400 Subject: [PATCH 0100/1709] New translations quick-start.mdx (Czech) --- .../src/pages/cs/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/cs/subgraphs/quick-start.mdx b/website/src/pages/cs/subgraphs/quick-start.mdx index 7c52d4745a83..27325c2c7f08 100644 --- a/website/src/pages/cs/subgraphs/quick-start.mdx +++ b/website/src/pages/cs/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Rychlé spuštění --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - Kryptopeněženka -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Nainstalujte Graph CLI @@ -37,20 +41,22 @@ Použitím [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From e23e332adfa3b33db038dd579154b82228368398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:42 -0400 Subject: [PATCH 0101/1709] New translations quick-start.mdx (Italian) --- .../src/pages/it/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/it/subgraphs/quick-start.mdx b/website/src/pages/it/subgraphs/quick-start.mdx index a803ac8695fa..b5c4a0fdc09e 100644 --- a/website/src/pages/it/subgraphs/quick-start.mdx +++ b/website/src/pages/it/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Quick Start --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From f535e3b744e41b651c05576d0bd20066d51fd6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:44 -0400 Subject: [PATCH 0102/1709] New translations quick-start.mdx (Japanese) --- .../src/pages/ja/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ja/subgraphs/quick-start.mdx b/website/src/pages/ja/subgraphs/quick-start.mdx index df410ba8ec9b..e900192305b4 100644 --- a/website/src/pages/ja/subgraphs/quick-start.mdx +++ b/website/src/pages/ja/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: クイックスタート --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - クリプトウォレット -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Graph CLI をインストールする @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 68857b6d1d0056d267920b7266250a96bc68aa76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:45 -0400 Subject: [PATCH 0103/1709] New translations quick-start.mdx (Korean) --- .../src/pages/ko/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ko/subgraphs/quick-start.mdx b/website/src/pages/ko/subgraphs/quick-start.mdx index a803ac8695fa..b5c4a0fdc09e 100644 --- a/website/src/pages/ko/subgraphs/quick-start.mdx +++ b/website/src/pages/ko/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Quick Start --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From bc58049bcd0f34c9cf1f8d175c8e8ac7335eceff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:46 -0400 Subject: [PATCH 0104/1709] New translations quick-start.mdx (Dutch) --- .../src/pages/nl/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/nl/subgraphs/quick-start.mdx b/website/src/pages/nl/subgraphs/quick-start.mdx index 7efec0891fa6..4bd6674aaa12 100644 --- a/website/src/pages/nl/subgraphs/quick-start.mdx +++ b/website/src/pages/nl/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Snelle Start --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 9d6386b6a9a58590ebc48b532c4c766eea4c7ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:47 -0400 Subject: [PATCH 0105/1709] New translations quick-start.mdx (Polish) --- .../src/pages/pl/subgraphs/quick-start.mdx | 98 ++++++------------- 1 file changed, 28 insertions(+), 70 deletions(-) diff --git a/website/src/pages/pl/subgraphs/quick-start.mdx b/website/src/pages/pl/subgraphs/quick-start.mdx index 62c69977491f..6f20081817c9 100644 --- a/website/src/pages/pl/subgraphs/quick-start.mdx +++ b/website/src/pages/pl/subgraphs/quick-start.mdx @@ -1,25 +1,29 @@ --- -title: ' Na start' +title: " Na start" --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From f86519620cb54236bd4cc5175ea2ed6c68424145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:48 -0400 Subject: [PATCH 0106/1709] New translations quick-start.mdx (Swedish) --- .../src/pages/sv/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/sv/subgraphs/quick-start.mdx b/website/src/pages/sv/subgraphs/quick-start.mdx index f3fba67ef0d7..b95ac213f7ba 100644 --- a/website/src/pages/sv/subgraphs/quick-start.mdx +++ b/website/src/pages/sv/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Snabbstart --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - En kryptoplånbok -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Installera Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 7bb758efea0e7eabda3f9f3b120bad2f15e50d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:50 -0400 Subject: [PATCH 0107/1709] New translations quick-start.mdx (Turkish) --- .../src/pages/tr/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/tr/subgraphs/quick-start.mdx b/website/src/pages/tr/subgraphs/quick-start.mdx index f0687717220f..8320065877da 100644 --- a/website/src/pages/tr/subgraphs/quick-start.mdx +++ b/website/src/pages/tr/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Hızlı Başlangıç --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - Bir kripto cüzdanı -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -[Subgraph Studio](https://thegraph.com/studio/)'ya gidin ve cüzdanınızı bağlayın. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Graph CLI'yi yükleyin @@ -37,20 +41,22 @@ npm install -g @graphprotocol/graph-cli@latest yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Subgraph Studio ile yayımlama +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### CLI'den Yayımlama - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -`graph-cli`yi açın. - -Şu komutları kullanın: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. Endeksleme ödüllerine hak kazanan Endeksleyiciler sinyal miktarına bağlı olarak GRT ödülü alırlar. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From a84f74dbd5985df8d846225eb53349080ee785dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:51 -0400 Subject: [PATCH 0108/1709] New translations quick-start.mdx (Ukrainian) --- .../src/pages/uk/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/uk/subgraphs/quick-start.mdx b/website/src/pages/uk/subgraphs/quick-start.mdx index 8ed3c12ffaa9..eea1f1d2b2de 100644 --- a/website/src/pages/uk/subgraphs/quick-start.mdx +++ b/website/src/pages/uk/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Швидкий старт --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - Криптогаманець -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Встановлення Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From a8b076edc58c91651e351ea3be701b3e70a296a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:52 -0400 Subject: [PATCH 0109/1709] New translations quick-start.mdx (Urdu (Pakistan)) --- .../src/pages/ur/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/ur/subgraphs/quick-start.mdx b/website/src/pages/ur/subgraphs/quick-start.mdx index 280a19a8a3d9..721c4a359c45 100644 --- a/website/src/pages/ur/subgraphs/quick-start.mdx +++ b/website/src/pages/ur/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: فورا شروع کریں --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - ایک کرپٹو والیٹ -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. گراف CLI انسٹال کریں @@ -37,20 +41,22 @@ npm install -g @graphprotocol/graph-cli@latest yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 7f1266abf92f5ac16b8aaf14d44b0acb0db2cf93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:53 -0400 Subject: [PATCH 0110/1709] New translations quick-start.mdx (Vietnamese) --- .../src/pages/vi/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/vi/subgraphs/quick-start.mdx b/website/src/pages/vi/subgraphs/quick-start.mdx index 0af59e0b4c46..017be070511a 100644 --- a/website/src/pages/vi/subgraphs/quick-start.mdx +++ b/website/src/pages/vi/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Bắt đầu nhanh --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - A crypto wallet -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. Install the Graph CLI @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 43ef1b90ecc51187e4487c3139e1fae20a70626b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:54 -0400 Subject: [PATCH 0111/1709] New translations quick-start.mdx (Marathi) --- .../src/pages/mr/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/mr/subgraphs/quick-start.mdx b/website/src/pages/mr/subgraphs/quick-start.mdx index b14954bc11a4..83e790887315 100644 --- a/website/src/pages/mr/subgraphs/quick-start.mdx +++ b/website/src/pages/mr/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: क्विक स्टार्ट --- -Learn how to easily build, publish and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph. +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## Prerequisites - एक क्रिप्टो वॉलेट -- A smart contract address on a [supported network](/supported-networks/) -- [Node.js](https://nodejs.org/) installed -- A package manager of your choice (`npm`, `yarn` or `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## How to Build a Subgraph ### 1. Create a Subgraph in Subgraph Studio -Go to [Subgraph Studio](https://thegraph.com/studio/) and connect your wallet. - -Subgraph Studio lets you create, manage, deploy, and publish Subgraphs, as well as create and manage API keys. - -Click "Create a Subgraph". It is recommended to name the Subgraph in Title Case: "Subgraph Name Chain Name". +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. आलेख CLI स्थापित करा @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### 3. Initialize your Subgraph +Verify install: -> You can find commands for your specific Subgraph on the Subgraph page in [Subgraph Studio](https://thegraph.com/studio/). +```sh +graph --version +``` -The `graph init` command will automatically create a scaffold of a Subgraph based on your contract's events. +### 3. Initialize your Subgraph -The following command initializes your Subgraph from an existing contract: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -If your contract is verified on the respective blockscanner where it is deployed (such as [Etherscan](https://etherscan.io/)), then the ABI will automatically be created in the CLI. - When you initialize your Subgraph, the CLI will ask you for the following information: - **Protocol**: Choose the protocol your Subgraph will be indexing data from. @@ -59,19 +65,17 @@ When you initialize your Subgraph, the CLI will ask you for the following inform - **Ethereum network** (optional): You may need to specify which EVM-compatible network your Subgraph will be indexing data from. - **Contract address**: Locate the smart contract address you’d like to query data from. - **ABI**: If the ABI is not auto-populated, you will need to input it manually as a JSON file. -- **Start Block**: You should input the start block to optimize Subgraph indexing of blockchain data. Locate the start block by finding the block where your contract was deployed. +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **Contract Name**: Input the name of your contract. - **Index contract events as entities**: It is suggested that you set this to true, as it will automatically add mappings to your Subgraph for every emitted event. - **Add another contract** (optional): You can add another contract. -See the following screenshot for an example for what to expect when initializing your Subgraph: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![Subgraph command](/img/CLI-Example.png) ### 4. Edit your Subgraph -The `init` command in the previous step creates a scaffold Subgraph that you can use as a starting point to build your Subgraph. - When making changes to the Subgraph, you will mainly work with three files: - Manifest (`subgraph.yaml`) - defines what data sources your Subgraph will index. @@ -82,9 +86,7 @@ For a detailed breakdown on how to write your Subgraph, check out [Creating a Su ### 5. Deploy your Subgraph -> Remember, deploying is not the same as publishing. - -When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node, rather than by the many decentralized Indexers in The Graph Network. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. Once your Subgraph is written, run the following commands: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI will ask for a version label. It's strongly recommended to use [semantic versioning](https://semver.org/), e.g. `0.0.1`. - ### 6. Review your Subgraph If you’d like to test your Subgraph before publishing it, you can use [Subgraph Studio](https://thegraph.com/studio/) to do the following: @@ -125,55 +125,13 @@ When your Subgraph is ready for a production environment, you can publish it to - It makes your Subgraph available to be to indexed by the decentralized [Indexers](/indexing/overview/) on The Graph Network. - It removes rate limits and makes your Subgraph publicly searchable and queryable in [Graph Explorer](https://thegraph.com/explorer/). -- It makes your Subgraph available for [Curators](/resources/roles/curating/) to curate it. - -> The greater the amount of GRT you and others curate on your Subgraph, the more Indexers will be incentivized to index your Subgraph, improving the quality of service, reducing latency, and enhancing network redundancy for your Subgraph. - -#### Publishing with Subgraph Studio +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -To publish your Subgraph, click the Publish button in the dashboard. +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![Publish a Subgraph on Subgraph Studio](/img/publish-sub-transfer.png) -Select the network to which you would like to publish your Subgraph. - -#### Publishing from the CLI - -As of version 0.73.0, you can also publish your Subgraph with the Graph CLI. - -Open the `graph-cli`. - -Use the following commands: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. A window will open, allowing you to connect your wallet, add metadata, and deploy your finalized Subgraph to a network of your choice. - -![cli-ui](/img/cli-ui.png) - -To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/). - -#### Adding signal to your Subgraph - -1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. - -2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. - -To learn more about curation, read [Curating](/resources/roles/curating/). +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. To save on gas costs, you can curate your Subgraph in the same transaction you publish it by selecting this option: From 645450e6c60b718de010d31f51295ebe3100ceb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 11:26:55 -0400 Subject: [PATCH 0112/1709] New translations quick-start.mdx (Hindi) --- .../src/pages/hi/subgraphs/quick-start.mdx | 96 ++++++------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/website/src/pages/hi/subgraphs/quick-start.mdx b/website/src/pages/hi/subgraphs/quick-start.mdx index cbf3550a3170..d11eb2cc3d0e 100644 --- a/website/src/pages/hi/subgraphs/quick-start.mdx +++ b/website/src/pages/hi/subgraphs/quick-start.mdx @@ -2,24 +2,28 @@ title: Quick Start --- -The Graph पर आसानी से एक [सबग्राफ](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) को बनाना, प्रकाशित करना और क्वेरी करना सीखें। +Create, deploy, and query a [Subgraph](/subgraphs/developing/developer-faq/#1-what-is-a-subgraph) on The Graph Network. + +By the end, you'll have: + +- Initialized a Subgraph from a smart contract +- Deployed it to Subgraph Studio for testing +- Published to The Graph Network for decentralized indexing ## पूर्वावश्यकताएँ - एक क्रिप्टो वॉलेट -- एक स्मार्ट contract पता एक [supported network](/supported-networks/) पर। -- [Node.js](https://nodejs.org/) इंस्टॉल किया गया -- आपकी पसंद का एक पैकेज मैनेजर (`npm`, `yarn` या `pnpm`) +- A deployed smart contract on a [supported network](/supported-networks/) +- [Node.js](https://nodejs.org/) & a package manager of your choice (`npm`, `yarn` or `pnpm`) ## सबग्राफ कैसे बनाएं ### 1. सबग्राफ Studio में एक सबग्राफ बनाएँ - -[Subgraph Studio](https://thegraph.com/studio/) पर जाएँ और अपने वॉलेट को कनेक्ट करें। - -सबग्राफ Studio आपको Subgraphs बनाने, प्रबंधित करने, तैनात करने और प्रकाशित करने की सुविधा देता है, साथ ही API कुंजी बनाने और प्रबंधित करने की सुविधा भी प्रदान करता है। - -"Create a सबग्राफ" पर क्लिक करें। यह अनुशंसा की जाती है कि सबग्राफ का नाम टाइटल केस में रखा जाए: "सबग्राफ Name Chain Name"। +1. Go to [Subgraph Studio](https://thegraph.com/studio/) +2. Connect your wallet +3. Click "Create a Subgraph" +4. Name it in Title Case: "Subgraph Name Chain Name" ### 2. ग्राफ़ सीएलआई स्थापित करें @@ -37,20 +41,22 @@ Using [yarn](https://yarnpkg.com/): yarn global add @graphprotocol/graph-cli ``` -### अपने सबग्राफ को प्रारंभ करें +Verify install: -> आप अपने विशिष्ट Subgraph के लिए कमांड Subgraph Studio के Subgraph पेज पर पा सकते हैं। +```sh +graph --version +``` -`graph init` कमांड स्वचालित रूप से आपके contract की घटनाओं के आधार पर एक सबग्राफ का खाका तैयार करेगा। +### अपने सबग्राफ को प्रारंभ करें -निम्नलिखित कमांड एक मौजूदा contract से आपका सबग्राफ प्रारंभ करता है: +> You can find commands for your specific Subgraph in [Subgraph Studio](https://thegraph.com/studio/). + +The following command initializes your Subgraph from an existing contract and indexes events: ```sh graph init ``` -यदि आपका contract उस ब्लॉकस्कैनर पर वेरीफाई किया गया है जहाँ यह डिप्लॉय किया गया है (जैसे [Etherscan](https://etherscan.io/)), तो ABI अपने आप CLI में क्रिएट हो जाएगा। - जब आप अपने सबग्राफ को प्रारंभ करते हैं, तो CLI आपसे निम्नलिखित जानकारी मांगेगा: - **प्रोटोकॉल**: वह प्रोटोकॉल चुनें जिससे आपका सबग्राफ डेटा को indexing करेगा। @@ -59,19 +65,17 @@ graph init - \*\*Ethereum नेटवर्क (वैकल्पिक): आपको यह निर्दिष्ट करने की आवश्यकता हो सकती है कि आपका Subgraph किस EVM-संगत नेटवर्क से डेटा को इंडेक्स करेगा। - **contract एड्रेस**: उस स्मार्ट contract एड्रेस को खोजें जिससे आप डेटा क्वेरी करना चाहते हैं। - **ABI**: यदि ABI स्वतः नहीं भरा जाता है, तो आपको इसे JSON फ़ाइल के रूप में मैन्युअल रूप से इनपुट करना होगा। -- **Start Block**: आपको स्टार्ट ब्लॉक इनपुट करना चाहिए ताकि ब्लॉकचेन डेटा की सबग्राफ indexing को ऑप्टिमाइज़ किया जा सके। स्टार्ट ब्लॉक को खोजने के लिए उस ब्लॉक को ढूंढें जहां आपका contract डिप्लॉय किया गया था। +- **Start Block**: You should input the start block where the contract was deployed to optimize Subgraph indexing of blockchain data. - **contract का नाम**: अपने contract का नाम दर्ज करें। - **contract इवेंट्स को entities के रूप में इंडेक्स करें**: इसे true पर सेट करने की सलाह दी जाती है, क्योंकि यह हर उत्सर्जित इवेंट के लिए स्वचालित रूप से आपके सबग्राफ में मैपिंग जोड़ देगा। - **एक और contract जोड़ें** (वैकल्पिक): आप एक और contract जोड़ सकते हैं। -इसका एक उदाहरण देखने के लिए निम्नलिखित स्क्रीनशॉट देखें कि जब आप अपना सबग्राफ इनिशियलाइज़ करते हैं तो क्या अपेक्षा करें: +See the following screenshot for an example of what to expect when initializing your Subgraph: ![सबग्राफ कमांड](/img/CLI-Example.png) ### अपना सबग्राफ संपादित करें -`init` कमांड पिछले चरण में एक प्रारंभिक सबग्राफ बनाता है जिसे आप अपने सबग्राफ को बनाने के लिए एक शुरुआती बिंदु के रूप में उपयोग कर सकते हैं। - सबग्राफ में परिवर्तन करते समय, आप मुख्य रूप से तीन फ़ाइलों के साथ काम करेंगे: - मैनिफेस्ट (`subgraph.yaml`) - यह निर्धारित करता है कि आपका सबग्राफ किन डेटा स्रोतों को इंडेक्स करेगा। @@ -82,9 +86,7 @@ graph init ### 5. अपना Subgraph डिप्लॉय करें -> तैनाती करना प्रकाशन के समान नहीं है। - -जब आप किसी सबग्राफ को तैनात (deploy) करते हैं, तो आप इसे [सबग्राफ Studio](https://thegraph.com/studio/) पर अपलोड करते हैं, जहाँ आप इसका परीक्षण, स्टेजिंग और समीक्षा कर सकते हैं। तैनात किए गए सबग्राफ का Indexing [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/) द्वारा किया जाता है, जो Edge & Node द्वारा संचालित एक एकल Indexer है, न कि The Graph Network में मौजूद कई विकेंद्रीकृत Indexers द्वारा। एक तैनात (deployed) सबग्राफ का उपयोग निःशुल्क है, यह दर-सीमित (rate-limited) होता है, सार्वजनिक रूप से दृश्य (visible) नहीं होता, और इसे मुख्य रूप से विकास (development), स्टेजिंग और परीक्षण (testing) उद्देश्यों के लिए डिज़ाइन किया गया है। +When you **deploy** a Subgraph, you push it to [Subgraph Studio](https://thegraph.com/studio/), where you can test, stage and review it. A deployed Subgraph's indexing is performed by the [Upgrade Indexer](https://thegraph.com/blog/upgrade-indexer/), which is a single Indexer owned and operated by Edge & Node. A **deployed** Subgraph is free to use, rate-limited, not visible to the public, and meant to be used for development, staging, and testing purposes. एक बार जब आपका सबग्राफ लिखा जा चुका हो, तो निम्नलिखित कमांड चलाएँ: @@ -107,8 +109,6 @@ graph deploy ``` ```` -The CLI एक संस्करण लेबल के लिए पूछेगा। यह दृढ़ता से सिफारिश की जाती है कि [semantic versioning](https://semver.org/) का उपयोग करें, जैसे 0.0.1। - ### 6. अपने सबग्राफ की समीक्षा करें यदि आप अपना सबग्राफ प्रकाशित करने से पहले उसका परीक्षण करना चाहते हैं, तो आप [सबग्राफ Studio](https://thegraph.com/studio/) का उपयोग करके निम्नलिखित कर सकते हैं: @@ -125,55 +125,13 @@ The CLI एक संस्करण लेबल के लिए पूछे - यह आपके सबग्राफ को विकेंद्रीकृत [Indexers](/indexing/overview/) द्वारा The Graph Network पर अनुक्रमित किए जाने के लिए उपलब्ध कराता है। - यह आपकी दर सीमा को हटा देता है और आपके सबग्राफ को [Graph Explorer](https://thegraph.com/explorer/) में सार्वजनिक रूप से खोजने योग्य और क्वेरी करने योग्य बनाता है। -- यह आपके सबग्राफ को [Curators](/resources/roles/curating/) के लिए उपलब्ध कराता है ताकि वे इसे क्यूरेट कर सकें। - -> अधिक मात्रा में GRT को आप और अन्य लोग आपके सबग्राफ पर क्यूरेट करते हैं, तो अधिक Indexers को आपके सबग्राफ को इंडेक्स करने के लिए प्रोत्साहित किया जाएगा, जिससे सेवा की गुणवत्ता में सुधार होगा, विलंबता (latency) कम होगी, और आपके सबग्राफ के लिए नेटवर्क की पुनरावृत्ति (redundancy) बढ़ेगी। - -#### Subgraph Studio से प्रकाशित +- It makes your Subgraph available for [Curators](/resources/roles/curating/) to add curation signal. -अपने सबग्राफ को प्रकाशित करने के लिए, डैशबोर्ड में Publish बटन पर क्लिक करें। +To publish your Subgraph, click the Publish button in the dashboard and select your network. ![सबग्राफ Studio पर एक Subgraph प्रकाशित करें](/img/publish-sub-transfer.png) -अपने सबग्राफ को प्रकाशित करने के लिए उस नेटवर्क का चयन करें, जिसे आप चुनना चाहते हैं। - -#### Publishing from the CLI - -जैसा कि संस्करण 0.73.0 में है, अब आप अपने सबग्राफ को Graph CLI के साथ प्रकाशित कर सकते हैं। - -`graph-cli` खोलें। - -निम्नलिखित कमांड का उपयोग करें: - -```` -```sh -graph codegen && graph build -``` - -Then, - -```sh -graph publish -``` -```` - -3. एक विंडो खुलेगी, जिससे आप अपना वॉलेट कनेक्ट कर सकते हैं, मेटाडेटा जोड़ सकते हैं और अपने फ़ाइनलाइज़ किए गए सबग्राफ को अपनी पसंद के नेटवर्क पर डिप्लॉय कर सकते हैं। - -![cli-ui](/img/cli-ui.png) - -अपने परिनियोजन को अनुकूलित करने के लिए, [Publishing a सबग्राफ](/subgraphs/developing/publishing/publishing-a-subgraph/) देखें। - -#### सिग्नल को अपने Subgraph में जोड़ना - -1. Indexers को अपने सबग्राफ से क्वेरी करने के लिए आकर्षित करने हेतु, आपको इसमें GRT क्यूरेशन सिग्नल जोड़ना चाहिए। - - - यह कार्रवाई सेवा की गुणवत्ता में सुधार करती है, विलंबता को कम करती है, और आपके सबग्राफ के लिए नेटवर्क की पुनरावृत्ति और उपलब्धता को बढ़ाती है। - -2. यदि इंडेक्सिंग पुरस्कारों के लिए योग्य हैं, तो Indexers संकेतित राशि के आधार पर GRT पुरस्कार प्राप्त करते हैं। - - - यह अनुशंसा की जाती है कि कम से कम 3,000 GRT को क्यूरेट किया जाए ताकि 3 Indexers को आकर्षित किया जा सके। सबग्राफ फीचर उपयोग और समर्थित नेटवर्क के आधार पर पुरस्कार पात्रता की जांच करें। - -Curation के बारे में और जानने के लिए, [Curating](/resources/roles/curating/) पढ़ें. +> It is recommended that you curate your own Subgraph with at least 3,000 GRT to incentivize indexing. गैस लागत बचाने के लिए, आप अपने सबग्राफ को उसी लेनदेन में प्रकाशित कर सकते हैं जिसमें आप इसे क्यूरेट कर रहे हैं, बस इस विकल्प का चयन करें: From 69db73b13caeb69ddc913cf0c6a0a95244b1c0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:41 -0400 Subject: [PATCH 0113/1709] New translations overview.mdx (Romanian) --- website/src/pages/ro/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/ro/indexing/overview.mdx b/website/src/pages/ro/indexing/overview.mdx index 4a980db27f12..0b9b31f5d22d 100644 --- a/website/src/pages/ro/indexing/overview.mdx +++ b/website/src/pages/ro/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From c01c8ddb28e0c51d9fbdee4deffd127cc985f9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:43 -0400 Subject: [PATCH 0114/1709] New translations overview.mdx (French) --- website/src/pages/fr/indexing/overview.mdx | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/website/src/pages/fr/indexing/overview.mdx b/website/src/pages/fr/indexing/overview.mdx index 1c0d0f9c7221..be87dbd79d9a 100644 --- a/website/src/pages/fr/indexing/overview.mdx +++ b/website/src/pages/fr/indexing/overview.mdx @@ -111,11 +111,11 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. | Configuration | Postgres
(CPUs) | Postgres
(mémoire en Go) | Postgres
(disque en To) | VMs
(CPUs) | VMs
(mémoire en Go) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Petit | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Moyen | 16 | 64 | 2 | 32 | 64 | -| Grand | 72 | 468 | 3.5 | 48 | 184 | +| ------------- | :------------------: | :---------------------------: | :--------------------------: | :-------------: | :----------------------: | +| Petit | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Moyen | 16 | 64 | 2 | 32 | 64 | +| Grand | 72 | 468 | 3.5 | 48 | 184 | ### Quelles sont les précautions de sécurité de base qu'un Indexeur doit prendre ? @@ -147,26 +147,26 @@ Remarque : pour permettre une mise à l'échelle souple, il est recommandé de s #### Nœud de The Graph -| Port | Objectif | Routes | Argument CLI | Variable d'Environment | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(pour gérer les déploiements) | / | \--admin-port | - | -| 8030 | API du statut de l'indexation des subgraphs | /graphql | \--index-node-port | - | -| 8040 | Métriques Prometheus | /metrics | \--metrics-port | - | +| Port | Objectif | Routes | Argument CLI | Variable d'Environment | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | ---------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(pour gérer les déploiements) | / | \--admin-port | - | +| 8030 | API du statut de l'indexation des subgraphs | /graphql | \--index-node-port | - | +| 8040 | Métriques Prometheus | /metrics | \--metrics-port | - | #### Service d'Indexeur -| Port | Objectif | Routes | Argument CLI | Variable D'environment | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Métriques Prometheus | /metrics | \--metrics-port | - | +| Port | Objectif | Routes | Argument CLI | Variable D'environment | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Métriques Prometheus | /metrics | \--metrics-port | - | #### Indexer Agent -| Port | Objectif | Routes | Argument CLI | Variable D'environment | -| ---- | ---------------------------- | ------ | -------------------------- | --------------------------------------- | -| 8000 | API de gestion des Indexeurs | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | +| Port | Objectif | Routes | Argument CLI | Variable D'environment | +| ---- | ---------------------------- | ------ | -------------------------- | ----------------------------------------- | +| 8000 | API de gestion des Indexeurs | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | ### Mise en place d'une infrastructure de serveurs à l'aide de Terraform sur Google Cloud @@ -729,11 +729,11 @@ default => 0.1 * $SYSTEM_LOAD; Exemple de calcul des coûts d'une requête à l'aide du modèle ci-dessus : -| Requête | Prix | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | +| Requête | Prix | +| ------------------------------------------------------------------------------ | ------- | +| { pairs(skip: 5000) { id } } | 0.5 GRT | +| { tokens { symbol } } | 0.1 GRT | +| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | #### Application du modèle de coût From f66f3810c57d7567c9dbf60c1d0c46c209385527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:44 -0400 Subject: [PATCH 0115/1709] New translations overview.mdx (Spanish) --- website/src/pages/es/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/es/indexing/overview.mdx b/website/src/pages/es/indexing/overview.mdx index cf592d9ad7e4..582962c94c0d 100644 --- a/website/src/pages/es/indexing/overview.mdx +++ b/website/src/pages/es/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 8cebae4d5cfb5555935934c97d045a5feee95347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:46 -0400 Subject: [PATCH 0116/1709] New translations overview.mdx (Arabic) --- website/src/pages/ar/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/ar/indexing/overview.mdx b/website/src/pages/ar/indexing/overview.mdx index 200a3a6a64e5..f543bca55f32 100644 --- a/website/src/pages/ar/indexing/overview.mdx +++ b/website/src/pages/ar/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 04c8dbb4c24c5b2ee7e8ad0309f0a0af25e14fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:47 -0400 Subject: [PATCH 0117/1709] New translations overview.mdx (Czech) --- website/src/pages/cs/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/cs/indexing/overview.mdx b/website/src/pages/cs/indexing/overview.mdx index 8acf4fdf72a9..47b88923efa8 100644 --- a/website/src/pages/cs/indexing/overview.mdx +++ b/website/src/pages/cs/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Uzel Graf -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 6f1ca15c01b5f3b1ec54c41249969eb030910d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:49 -0400 Subject: [PATCH 0118/1709] New translations overview.mdx (German) --- website/src/pages/de/indexing/overview.mdx | 38 +++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/website/src/pages/de/indexing/overview.mdx b/website/src/pages/de/indexing/overview.mdx index 4635fbb7f2b9..f6128f144663 100644 --- a/website/src/pages/de/indexing/overview.mdx +++ b/website/src/pages/de/indexing/overview.mdx @@ -111,11 +111,11 @@ Indexierer können sich durch die Anwendung fortgeschrittener Techniken für die - **Large** - Vorbereitet, um alle derzeit verwendeten Subgraphen zu indizieren und Anfragen für den entsprechenden Verkehr zu bedienen. | Konfiguration | Postgres
(CPUs) | Postgres
(Speicher in GB) | Postgres
(Festplatte in TB) | VMs
(CPUs) | VMs
(Speicher in GB) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| ------------- | :------------------: | :----------------------------: | :------------------------------: | :-------------: | :-----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### Was sind einige grundlegende Sicherheitsvorkehrungen, die ein Indexierer treffen sollte? @@ -147,26 +147,26 @@ Hinweis: Um eine flexible Skalierung zu unterstützen, wird empfohlen, Abfrage- #### Graph-Knoten -| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP Server
(für Subgraph-Abfragen) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(für Subgraphen-Abonnements) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(zum Verwalten von Deployments) | / | \--admin-port | - | -| 8030 | Status der Indizierung von Subgraphen API | /graphql | \--index-node-port | - | -| 8040 | Prometheus-Metriken | /metrics | \--metrics-port | - | +| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | +| ---- | ------------------------------------------------ | ---------------------------------------------- | ------------------ | ----------------- | +| 8000 | GraphQL HTTP Server
(für Subgraph-Abfragen) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(für Subgraphen-Abonnements) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(zum Verwalten von Deployments) | / | \--admin-port | - | +| 8030 | Status der Indizierung von Subgraphen API | /graphql | \--index-node-port | - | +| 8040 | Prometheus-Metriken | /metrics | \--metrics-port | - | #### Indexer-Service -| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP Server
(für bezahlte Subgraph-Abfragen) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus-Metriken | /metrics | \--metrics-port | - | +| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | +| ---- | --------------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP Server
(für bezahlte Subgraph-Abfragen) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus-Metriken | /metrics | \--metrics-port | - | #### Indexierer-Agent -| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | -| ---- | ----------------------- | ------ | -------------------------- | --------------------------------------- | -| 8000 | Indexer-Verwaltungs-API | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | +| Port | Verwendungszweck | Routen | CLI-Argument | Umgebungsvariable | +| ---- | ------------------------------- | ------ | -------------------------- | --------------------------------------- | +| 8000 | Indexer-Verwaltungs-API | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | ### Einrichten einer Server-Infrastruktur mit Terraform auf Google Cloud From 0f9ec69c9574cad6f838f285c6d1c3f643b2e801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:50 -0400 Subject: [PATCH 0119/1709] New translations overview.mdx (Italian) --- website/src/pages/it/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/it/indexing/overview.mdx b/website/src/pages/it/indexing/overview.mdx index 371d0f48cf9a..4fd39637b806 100644 --- a/website/src/pages/it/indexing/overview.mdx +++ b/website/src/pages/it/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 023af7e324ace16537d669a95683769a1645e7a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:51 -0400 Subject: [PATCH 0120/1709] New translations overview.mdx (Japanese) --- website/src/pages/ja/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/ja/indexing/overview.mdx b/website/src/pages/ja/indexing/overview.mdx index 25b94c36ca88..df7af3cc4dfd 100644 --- a/website/src/pages/ja/indexing/overview.mdx +++ b/website/src/pages/ja/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### グラフノード -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 2298aea048b5fd7a4911e43235833df96bf66288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:53 -0400 Subject: [PATCH 0121/1709] New translations overview.mdx (Korean) --- website/src/pages/ko/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/ko/indexing/overview.mdx b/website/src/pages/ko/indexing/overview.mdx index 4a980db27f12..0b9b31f5d22d 100644 --- a/website/src/pages/ko/indexing/overview.mdx +++ b/website/src/pages/ko/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From f6780904126fa8a62e8e27b3bf1d646baca6f61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:54 -0400 Subject: [PATCH 0122/1709] New translations overview.mdx (Dutch) --- website/src/pages/nl/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/nl/indexing/overview.mdx b/website/src/pages/nl/indexing/overview.mdx index 89c13c8ab279..891a4b0dba3d 100644 --- a/website/src/pages/nl/indexing/overview.mdx +++ b/website/src/pages/nl/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 464a4af9bd1d30f4d5284b37dc588cf773793e2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:56 -0400 Subject: [PATCH 0123/1709] New translations overview.mdx (Polish) --- website/src/pages/pl/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/pl/indexing/overview.mdx b/website/src/pages/pl/indexing/overview.mdx index 4a980db27f12..0b9b31f5d22d 100644 --- a/website/src/pages/pl/indexing/overview.mdx +++ b/website/src/pages/pl/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 44a705e4e14b122a623f08957e293549f0fff6a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:57 -0400 Subject: [PATCH 0124/1709] New translations overview.mdx (Portuguese) --- website/src/pages/pt/indexing/overview.mdx | 38 +++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/website/src/pages/pt/indexing/overview.mdx b/website/src/pages/pt/indexing/overview.mdx index 02343b809f03..a97272ae9669 100644 --- a/website/src/pages/pt/indexing/overview.mdx +++ b/website/src/pages/pt/indexing/overview.mdx @@ -111,11 +111,11 @@ Os Indexadores podem se diferenciar ao aplicar técnicas avançadas para decidir - **Grande** — Preparado para indexar todos os subgraphs usados atualmente e servir solicitações para o tráfego relacionado. | Configuração | Postgres
(CPUs) | Postgres
(memória em GBs) | Postgres
(disco em TBs) | VMs
(CPUs) | VMs
(memória em GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Pequeno | 4 | 8 | 1 | 4 | 16 | -| Normal | 8 | 30 | 1 | 12 | 48 | -| Médio | 16 | 64 | 2 | 32 | 64 | -| Grande | 72 | 468 | 3.5 | 48 | 184 | +| ------------ | :------------------: | :----------------------------: | :--------------------------: | :-------------: | :-----------------------: | +| Pequeno | 4 | 8 | 1 | 4 | 16 | +| Normal | 8 | 30 | 1 | 12 | 48 | +| Médio | 16 | 64 | 2 | 32 | 64 | +| Grande | 72 | 468 | 3.5 | 48 | 184 | ### Há alguma precaução básica de segurança que um Indexador deve tomar? @@ -147,26 +147,26 @@ Observe: Para apoiar o escalamento ágil, recomendamos que assuntos de query e d #### Graph Node -| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | -| --- | --- | --- | --- | --- | -| 8000 | Servidor HTTP GraphQL
(para queries de subgraph) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | WS GraphQL
(para inscrições a subgraphs) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(para gerir implantações) | / | \--admin-port | - | -| 8030 | API de estado de indexação do subgraph | /graphql | \--index-node-port | - | -| 8040 | Métricas Prometheus | /metrics | \--metrics-port | - | +| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | +| ----- | ----------------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | Servidor HTTP GraphQL
(para queries de subgraph) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | WS GraphQL
(para inscrições a subgraphs) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(para gerir implantações) | / | \--admin-port | - | +| 8030 | API de estado de indexação do subgraph | /graphql | \--index-node-port | - | +| 8040 | Métricas Prometheus | /metrics | \--metrics-port | - | #### Serviço Indexador -| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | -| --- | --- | --- | --- | --- | -| 7600 | Servidor HTTP GraphQL
(para queries pagos de subgraph) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Métricas Prometheus | /metrics | \--metrics-port | - | +| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | +| ----- | ----------------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | Servidor HTTP GraphQL
(para queries pagos de subgraph) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Métricas Prometheus | /metrics | \--metrics-port | - | #### Agente Indexador -| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | -| ----- | -------------------------- | ----- | -------------------------- | --------------------------------------- | -| 8000 | API de gestão de Indexador | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | +| Porta | Propósito | Rotas | Argumento CLI | Variável de Ambiente | +| ----- | -------------------------- | ------ | -------------------------- | --------------------------------------- | +| 8000 | API de gestão de Indexador | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | ### Como preparar uma infraestrutura de servidor com o Terraform no Google Cloud From 1c94a4289236097aae9de5535430b9f22ccd61fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:23:59 -0400 Subject: [PATCH 0125/1709] New translations overview.mdx (Russian) --- website/src/pages/ru/indexing/overview.mdx | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/website/src/pages/ru/indexing/overview.mdx b/website/src/pages/ru/indexing/overview.mdx index 30c9ec939dcd..f66166d8c7af 100644 --- a/website/src/pages/ru/indexing/overview.mdx +++ b/website/src/pages/ru/indexing/overview.mdx @@ -110,12 +110,12 @@ query indexerAllocations { - **Средние** – производительный Индексатор, поддерживающий 100 субграфов и 200–500 запросов в секунду. - **Высокие** – готов индексировать все используемые субграфы и обрабатывать соответствующий трафик запросов. -| Настройка | Postgres
(ЦП) | Postgres
(память в ГБ) | Postgres
(диск в ТБ) | VMs
(ЦП) | VMs
(память в ГБ) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Низкая | 4 | 8 | 1 | 4 | 16 | -| Стандартная | 8 | 30 | 1 | 12 | 48 | -| Средняя | 16 | 64 | 2 | 32 | 64 | -| Высокая | 72 | 468 | 3.5 | 48 | 184 | +| Настройка | Postgres
(ЦП) | Postgres
(память в ГБ) | Postgres
(диск в ТБ) | VMs
(ЦП) | VMs
(память в ГБ) | +| ----------- | :----------------: | :-------------------------: | :-----------------------: | :-----------: | :--------------------: | +| Низкая | 4 | 8 | 1 | 4 | 16 | +| Стандартная | 8 | 30 | 1 | 12 | 48 | +| Средняя | 16 | 64 | 2 | 32 | 64 | +| Высокая | 72 | 468 | 3.5 | 48 | 184 | ### Какие основные меры безопасности следует предпринять Индексатору? @@ -147,20 +147,20 @@ query indexerAllocations { #### Graph Node -| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP-сервер
(для запросов к Субграфу) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(для подписок на Субграф) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(для управления развертываниями) | / | \--admin-port | - | -| 8030 | API статуса индексирования Субграфа | /graphql | \--index-node-port | - | -| 8040 | Метрики Prometheus | /metrics | \--metrics-port | - | +| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | +| ---- | -------------------------------------------------- | ---------------------------------------------- | ------------------ | ---------------- | +| 8000 | GraphQL HTTP-сервер
(для запросов к Субграфу) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(для подписок на Субграф) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(для управления развертываниями) | / | \--admin-port | - | +| 8030 | API статуса индексирования Субграфа | /graphql | \--index-node-port | - | +| 8040 | Метрики Prometheus | /metrics | \--metrics-port | - | #### Сервис Индексатора -| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP-сервер
(для платных запросов к Субграфу) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Метрики Prometheus | /metrics | \--metrics-port | - | +| Порт | Назначение | Маршруты | Аргумент CLI | Переменная среды | +| ---- | ---------------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP-сервер
(для платных запросов к Субграфу) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Метрики Prometheus | /metrics | \--metrics-port | - | #### Агент Индексатора @@ -391,7 +391,7 @@ graph-indexer-service start ... # Агент Индексатора graph-indexer-agent start ... -#CLI Индексатора +#CLI Индексатора #Проброс порта Вашего pod-агента, если используется Kubernetes kubectl port-forward pod/POD_ID 18000:8000 graph indexer connect http://localhost:18000/ @@ -729,11 +729,11 @@ default => 0.1 * $SYSTEM_LOAD; Пример вычисления запросов с использованием вышеуказанной модели: -| Запрос | Цена | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | +| Запрос | Цена | +| ----------------------------------------------------------------------------- | ------- | +| { pairs(skip: 5000) { id } } | 0.5 GRT | +| { tokens { symbol } } | 0.1 GRT | +| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | #### Применение модели стоимости From dfad86c84ac5da6eac097b42608a508f1712c93b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:00 -0400 Subject: [PATCH 0126/1709] New translations overview.mdx (Swedish) --- website/src/pages/sv/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/sv/indexing/overview.mdx b/website/src/pages/sv/indexing/overview.mdx index b355374c5949..3cbd4c66ccf5 100644 --- a/website/src/pages/sv/indexing/overview.mdx +++ b/website/src/pages/sv/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graf Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From f7fbc533febc8f175a40e0c9bb6355169a19eb57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:01 -0400 Subject: [PATCH 0127/1709] New translations overview.mdx (Turkish) --- website/src/pages/tr/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/tr/indexing/overview.mdx b/website/src/pages/tr/indexing/overview.mdx index 6a9d93397c39..fdaed8832e1b 100644 --- a/website/src/pages/tr/indexing/overview.mdx +++ b/website/src/pages/tr/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 7903a40db2fcb93f3b1e74d8b4acdbfb6c3b59a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:02 -0400 Subject: [PATCH 0128/1709] New translations overview.mdx (Ukrainian) --- website/src/pages/uk/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/uk/indexing/overview.mdx b/website/src/pages/uk/indexing/overview.mdx index 1ef3973c70cd..2914c64219ea 100644 --- a/website/src/pages/uk/indexing/overview.mdx +++ b/website/src/pages/uk/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From e064f2b54148c4de6c2b6fa6f3f3eb693d2a8a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:04 -0400 Subject: [PATCH 0129/1709] New translations overview.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/overview.mdx | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/website/src/pages/zh/indexing/overview.mdx b/website/src/pages/zh/indexing/overview.mdx index a20d5cb185d4..7f85df5b083a 100644 --- a/website/src/pages/zh/indexing/overview.mdx +++ b/website/src/pages/zh/indexing/overview.mdx @@ -111,11 +111,11 @@ query indexerAllocations { - **大型** -准备对当前使用的所有子图进行索引,并为相关流量的请求提供服务。 | 设置 | Postgres
(CPUs) | Postgres
(内存 GBs) | Postgres
(硬盘TBs) | VMs
(CPUs) | VMs
(内存 GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| 小型 | 4 | 8 | 1 | 4 | 16 | -| 标准 | 8 | 30 | 1 | 12 | 48 | -| 中型 | 16 | 64 | 2 | 32 | 64 | -| 大型 | 72 | 468 | 3.5 | 48 | 184 | +| -- | :------------------: | :--------------------: | :-------------------: | :-------------: | :---------------: | +| 小型 | 4 | 8 | 1 | 4 | 16 | +| 标准 | 8 | 30 | 1 | 12 | 48 | +| 中型 | 16 | 64 | 2 | 32 | 64 | +| 大型 | 72 | 468 | 3.5 | 48 | 184 | ### 索引人应该采取哪些基本的安全防范措施? @@ -147,26 +147,26 @@ query indexerAllocations { #### Graph 节点 -| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(用于子图查询) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(用于子图订阅) | /subgraphs/id/...
/subgraphs/name/.../…… | \--ws-port | - | -| 8020 | JSON-RPC
(用于管理部署) | / | \--admin-port | - | -| 8030 | 子图索引状态 API | /graphql | \--index-node-port | - | -| 8040 | Prometheus 指标 | /metrics | \--metrics-port | - | +| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | +| ---- | --------------------------------- | ------------------------------------------------ | ------------------ | ----- | +| 8000 | GraphQL HTTP server
(用于子图查询) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(用于子图订阅) | /subgraphs/id/...
/subgraphs/name/.../…… | \--ws-port | - | +| 8020 | JSON-RPC
(用于管理部署) | / | \--admin-port | - | +| 8030 | 子图索引状态 API | /graphql | \--index-node-port | - | +| 8040 | Prometheus 指标 | /metrics | \--metrics-port | - | #### 索引人服务 -| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP 服务器
(用于付费子图查询) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus 指标 | /metrics | \--metrics-port | - | +| 端口 | 用途 | 路径 | CLI 参数 | 环境 变量 | +| ---- | --------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP 服务器
(用于付费子图查询) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus 指标 | /metrics | \--metrics-port | - | #### 索引人代理 -| 端口 | 目的 | 路径 | CLI 参数 | 环境 变量 | -| ---- | -------------- | ---- | ------------------- | --------------------------------------- | -| 8000 | 索引人管理 API | / | \--索引人-管理-端口 | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | +| 端口 | 目的 | 路径 | CLI 参数 | 环境 变量 | +| ---- | ----------------- | ------ | ----------------------- | --------------------------------------- | +| 8000 | 索引人管理 API | / | \--索引人-管理-端口 | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | ### 在谷歌云上使用 Terraform 建立服务器基础设施 @@ -729,7 +729,7 @@ default => 0.1 * $SYSTEM_LOAD; 使用上述模型的查询成本计算示例: -| 查询 | 价格 | +| 查询 | 价格 | | ---------------------------------------------------------------------------- | ------- | | { pairs(skip: 5000) { id } } | 0.5 GRT | | { tokens { symbol } } | 0.1 GRT | From 5fb423f8145537f08e28e7e7c7ad6ee7899787c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:05 -0400 Subject: [PATCH 0130/1709] New translations overview.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/ur/indexing/overview.mdx b/website/src/pages/ur/indexing/overview.mdx index 8258c63fa6f1..e2a11f30cfbf 100644 --- a/website/src/pages/ur/indexing/overview.mdx +++ b/website/src/pages/ur/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### گراف نوڈ -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 697166c516a167b807ecd836c547bdcb7e78e84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:07 -0400 Subject: [PATCH 0131/1709] New translations overview.mdx (Vietnamese) --- website/src/pages/vi/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/vi/indexing/overview.mdx b/website/src/pages/vi/indexing/overview.mdx index 034b74623eaf..3ffdf00a4346 100644 --- a/website/src/pages/vi/indexing/overview.mdx +++ b/website/src/pages/vi/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### Graph Node -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 976de55f696ed3d7f00d6383a5c7f011d3382a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:08 -0400 Subject: [PATCH 0132/1709] New translations overview.mdx (Marathi) --- website/src/pages/mr/indexing/overview.mdx | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/website/src/pages/mr/indexing/overview.mdx b/website/src/pages/mr/indexing/overview.mdx index 9d78f7612f01..ce44b1b7a1d4 100644 --- a/website/src/pages/mr/indexing/overview.mdx +++ b/website/src/pages/mr/indexing/overview.mdx @@ -110,12 +110,12 @@ Indexers may differentiate themselves by applying advanced techniques for making - **Medium** - Production Indexer supporting 100 Subgraphs and 200-500 requests per second. - **Large** - Prepared to index all currently used Subgraphs and serve requests for the related traffic. -| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| Small | 4 | 8 | 1 | 4 | 16 | -| Standard | 8 | 30 | 1 | 12 | 48 | -| Medium | 16 | 64 | 2 | 32 | 64 | -| Large | 72 | 468 | 3.5 | 48 | 184 | +| Setup | Postgres
(CPUs) | Postgres
(memory in GBs) | Postgres
(disk in TBs) | VMs
(CPUs) | VMs
(memory in GBs) | +| -------- | :------------------: | :---------------------------: | :-------------------------: | :-------------: | :----------------------: | +| Small | 4 | 8 | 1 | 4 | 16 | +| Standard | 8 | 30 | 1 | 12 | 48 | +| Medium | 16 | 64 | 2 | 32 | 64 | +| Large | 72 | 468 | 3.5 | 48 | 184 | ### What are some basic security precautions an Indexer should take? @@ -147,20 +147,20 @@ Note: To support agile scaling, it is recommended that query and indexing concer #### आलेख नोड -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | -------------------- | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for Subgraph subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Service -| Port | Purpose | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | +| Port | Purpose | Routes | CLI Argument | Environment Variable | +| ---- | ---------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(for paid Subgraph queries) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus metrics | /metrics | \--metrics-port | - | #### Indexer Agent From 9ce0635ca1f338c0f08da3b18bd6a953128b5892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:09 -0400 Subject: [PATCH 0133/1709] New translations overview.mdx (Hindi) --- website/src/pages/hi/indexing/overview.mdx | 48 +++++++++++----------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/website/src/pages/hi/indexing/overview.mdx b/website/src/pages/hi/indexing/overview.mdx index 38a778b97854..baf5fa61aacd 100644 --- a/website/src/pages/hi/indexing/overview.mdx +++ b/website/src/pages/hi/indexing/overview.mdx @@ -60,7 +60,7 @@ query indexerAllocations { Etherscan का उपयोग करके `getRewards()` कॉल करें: - [ईथरस्कैन इंटरफेस पर रिवॉर्ड्स contract](https://etherscan.io/address/0x9Ac758AB77733b4150A901ebd659cbF8cB93ED66#readProxyContract) पर जाएं। -- `getRewards()` को कॉल करने के लिए: +- `getRewards()` को कॉल करने के लिए: - **9. getRewards** ड्रॉपडाउन का विस्तार करें। - इनपुट में **allocationID** दर्ज करें। - कृपया **Query** बटन पर क्लिक करें। @@ -111,11 +111,11 @@ Indexers उन्नत तकनीकों को लागू करके - **बड़ा **- वर्तमान में उपयोग किए जा रहे सभी सबग्राफ को इंडेक्स करने और संबंधित ट्रैफ़िक के लिए अनुरोधों को सर्व करने के लिए तैयार। | सेटअप | Postgres
(CPUs) | Postgres
(मेमोरी in GBs) | Postgres
(डिस्क in TBs) | VMs
(CPUs) | VMs
(मेमोरी in GBs) | -| --- | :-: | :-: | :-: | :-: | :-: | -| छोटा | 4 | 8 | 1 | 4 | 16 | -| मानक | 8 | 30 | 1 | 12 | 48 | -| मध्यम | 16 | 64 | 2 | 32 | 64 | -| बड़ा | 72 | 468 | 3.5 | 48 | 184 | +| ----- | :------------------: | :---------------------------: | :--------------------------: | :-------------: | :----------------------: | +| छोटा | 4 | 8 | 1 | 4 | 16 | +| मानक | 8 | 30 | 1 | 12 | 48 | +| मध्यम | 16 | 64 | 2 | 32 | 64 | +| बड़ा | 72 | 468 | 3.5 | 48 | 184 | ### कोई Indexer को कौन-कौन सी बुनियादी सुरक्षा सावधानियाँ बरतनी चाहिए? @@ -147,26 +147,26 @@ Indexer के इंफ्रास्ट्रक्चर के केंद #### Graph Node -| पोर्ट | उद्देश्य | रूट्स | आर्गुमेंट्स | पर्यावरण वेरिएबल्स | -| --- | --- | --- | --- | --- | -| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | -| 8001 | GraphQL WS
(for सबग्राफ subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | -| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | -| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | -| 8040 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | +| पोर्ट | उद्देश्य | रूट्स | आर्गुमेंट्स | पर्यावरण वेरिएबल्स | +| ----- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | ------------------ | +| 8000 | GraphQL HTTP server
(for Subgraph queries) | /subgraphs/id/...
/subgraphs/name/.../... | \--http-port | - | +| 8001 | GraphQL WS
(for सबग्राफ subscriptions) | /subgraphs/id/...
/subgraphs/name/.../... | \--ws-port | - | +| 8020 | JSON-RPC
(for managing deployments) | / | \--admin-port | - | +| 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | +| 8040 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | #### Indexer सेवा -| पोर्ट | उद्देश्य | Routes | CLI Argument | Environment Variable | -| --- | --- | --- | --- | --- | -| 7600 | GraphQL HTTP server
(भुगतान किए गए सबग्राफ क्वेरीज़ के लिए) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | -| 7300 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | +| पोर्ट | उद्देश्य | Routes | CLI Argument | Environment Variable | +| ----- | ---------------------------------------------------------------- | ----------------------------------------------------------- | --------------- | ---------------------- | +| 7600 | GraphQL HTTP server
(भुगतान किए गए सबग्राफ क्वेरीज़ के लिए) | /subgraphs/id/...
/status
/channel-messages-inbox | \--port | `INDEXER_SERVICE_PORT` | +| 7300 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | #### Indexer एजेंट -| पोर्ट | उद्देश्य | Routes | CLI Argument | Environment Variable | -| ----- | ------------------- | ------ | -------------------------- | --------------------------------------- | -| 8000 | Indexer प्रबंधन API | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | +| पोर्ट | उद्देश्य | Routes | CLI Argument | Environment Variable | +| ----- | ----------------------- | ------ | -------------------------- | --------------------------------------- | +| 8000 | Indexer प्रबंधन API | / | \--indexer-management-port | `INDEXER_AGENT_INDEXER_MANAGEMENT_PORT` | ### Google Cloud पर Terraform का उपयोग करके सर्वर अवसंरचना सेटअप करें @@ -178,7 +178,7 @@ Indexer के इंफ्रास्ट्रक्चर के केंद - Kubectl कमांड लाइन टूल - Terraform -#### Google Cloud प्रोजेक्ट बनाएं +#### Google Cloud प्रोजेक्ट बनाएं - Clone करें या [Indexer repository](https://github.com/graphprotocol/indexer) पर जाएं। @@ -525,7 +525,9 @@ graph indexer status #### Indexer प्रबंधन Indexer CLI का उपयोग करके -**Indexer Management API** के साथ इंटरैक्ट करने के लिए सुझाया गया टूल **Indexer CLI** है, जो कि **Graph CLI** का एक एक्सटेंशन है। Indexer agent को एक Indexer से इनपुट की आवश्यकता होती है ताकि वह Indexer की ओर से नेटवर्क के साथ स्वायत्त रूप से इंटरैक्ट कर सके। Indexer agent व्यवहार को परिभाषित करने के लिए **allocation management** मोड और **indexing rules** का उपयोग किया जाता है। Auto mode में, एक Indexer **indexing rules** का उपयोग करके यह तय कर सकता है कि वह किन को इंडेक्स और क्वेरी के लिए सर्व करेगा। इन नियमों को GraphQL API के माध्यम से प्रबंधित किया जाता है, जिसे agent द्वारा सर्व किया जाता है और यह Indexer Management API के रूप में जाना जाता है। Manual mode में, एक Indexer **actions queue** का उपयोग करके allocation actions बना सकता है और उन्हें निष्पादित करने से पहले स्पष्ट रूप से अनुमोदित कर सकता है। Oversight mode में, **indexing rules** का उपयोग **actions queue** को भरने के लिए किया जाता है और इन्हें निष्पादित करने से पहले भी स्पष्ट अनुमोदन की आवश्यकता होती है। +**Indexer Management API** के साथ इंटरैक्ट करने के लिए सुझाया गया टूल **Indexer CLI** है, जो कि **Graph CLI** का एक एक्सटेंशन है। Indexer agent को एक Indexer से इनपुट की आवश्यकता होती है ताकि वह Indexer की ओर से नेटवर्क के साथ स्वायत्त रूप से इंटरैक्ट कर सके। +Indexer agent व्यवहार को परिभाषित करने के लिए **allocation management** मोड और **indexing rules** का उपयोग किया जाता है। Auto mode में, एक Indexer **indexing rules** का उपयोग करके यह तय कर सकता है कि वह किन को इंडेक्स और क्वेरी के लिए सर्व करेगा। इन नियमों को GraphQL API के माध्यम से प्रबंधित किया जाता है, जिसे agent द्वारा सर्व किया जाता है और यह Indexer Management API के रूप में जाना जाता है। +Manual mode में, एक Indexer **actions queue** का उपयोग करके allocation actions बना सकता है और उन्हें निष्पादित करने से पहले स्पष्ट रूप से अनुमोदित कर सकता है। Oversight mode में, **indexing rules** का उपयोग **actions queue** को भरने के लिए किया जाता है और इन्हें निष्पादित करने से पहले भी स्पष्ट अनुमोदन की आवश्यकता होती है। #### उपयोग @@ -758,7 +760,7 @@ Once an Indexer ने प्रोटोकॉल में GRT को स् 1. ओपन द [Remix app](https://remix.ethereum.org/) एक ब्राउज़र में -2. `File Explorer` में **GraphToken.abi** नामक फ़ाइल बनाएं जिसमें [token ABI](https://raw.githubusercontent.com/graphprotocol/contracts/mainnet-deploy-build/build/abis/GraphToken.json) हो। +2. `File Explorer` में **GraphToken.abi** नामक फ़ाइल बनाएं जिसमें [token ABI](https://raw.githubusercontent.com/graphprotocol/contracts/mainnet-deploy-build/build/abis/GraphToken.json) हो। 3. `GraphToken.abi` चयनित और संपादक में खुला होने पर, Remix इंटरफ़ेस में `Deploy and run transactions` अनुभाग पर स्विच करें। From f6a8c46f9d08a5e0efd0f45000af8ee6a5750a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:11 -0400 Subject: [PATCH 0134/1709] New translations explorer.mdx (German) --- website/src/pages/de/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/de/subgraphs/explorer.mdx b/website/src/pages/de/subgraphs/explorer.mdx index 3a386698a7d4..f98024526dd0 100644 --- a/website/src/pages/de/subgraphs/explorer.mdx +++ b/website/src/pages/de/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Erschließen Sie die Welt der Subgraphen und Netzwerkdaten mit [Graph Explorer] (https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Überblick -Graph Explorer besteht aus mehreren Teilen, in denen Sie mit [[Subgraphen]] (https://thegraph.com/explorer?chain=arbitrum-one) interagieren, [[delegieren]] (https://thegraph.com/explorer/delegate?chain=arbitrum-one), [[Teilnehmer]] (https://thegraph.com/explorer/participants?chain=arbitrum-one) einbeziehen, [[Netzwerkinformationen]] (https://thegraph.com/explorer/network?chain=arbitrum-one) anzeigen und auf Ihr Benutzerprofil zugreifen können. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -Nachfolgend finden Sie eine Übersicht über die wichtigsten Funktionen von Graph Explorer. Für zusätzliche Unterstützung können Sie sich den [Graph Explorer Video Guide](/subgraphs/explorer/#video-guide) ansehen. +## Voraussetzungen -### Subgraphen-Seite +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -Nachdem Sie Ihren Subgraph in Subgraph Studio bereitgestellt und veröffentlicht haben, gehen Sie zu [Graph Explorer] (https://thegraph.com/explorer) und klicken Sie auf den Link „[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)“ in der Navigationsleiste, um auf Folgendes zuzugreifen: +## Navigating Graph Explorer -- Ihre eigenen fertigen Subgraphen -- Von anderen veröffentlichte Subgraphen -- Den genauen Subgraphen, den Sie wünschen (basierend auf dem Erstellungsdatum, der Signalmenge oder dem Namen). +### Step 1. Explore Subgraphs -![Explorer Bild 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -Wenn Sie in einen Subgraphen klicken, können Sie Folgendes tun: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Testen Sie Abfragen auf dem Playground und nutzen Sie Netzwerkdetails, um fundierte Entscheidungen zu treffen. -- Signalisieren Sie GRT auf Ihrem eigenen Subgraphen oder den Subgraphen anderer, um die Indexierer auf seine Bedeutung und Qualität aufmerksam zu machen. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - Dies ist von entscheidender Bedeutung, da die Signalisierung eines Subgraphen einen Anreiz darstellt, ihn zu indizieren, was bedeutet, dass er schließlich im Netzwerk auftaucht, um Abfragen zu bedienen. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Bild 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Testen Sie Abfragen auf dem Playground und nutzen Sie Netzwerkdetails, um fundierte Entscheidungen zu treffen. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) Auf der speziellen Seite jedes Subgraphen können Sie Folgendes tun: -- Signal/Un-Signal auf Subgraphen -- Weitere Details wie Diagramme, aktuelle Bereitstellungs-ID und andere Metadaten anzeigen -- Versionen wechseln, um frühere Iterationen des Subgraphen zu erkunden - Abfrage von Subgraphen über GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Subgraphen auf dem Prüfstand testen - Anzeigen der Indexierer, die auf einem bestimmten Subgraphen indexieren - Subgraphen-Statistiken (Zuweisungen, Kuratoren, etc.) -- Anzeigen der Entität, die den Subgraphen veröffentlicht hat +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Bild 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegierten-Seite +### Step 2. Delegate GRT -Auf der [Delegierten-Seite] (https://thegraph.com/explorer/delegate?chain=arbitrum-one) finden Sie Informationen zum Delegieren, zum Erwerb von GRT und zur Auswahl eines Indexierers. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -Auf dieser Seite können Sie Folgendes sehen: +Here, you can: -- Indexierer, die die meisten Abfragegebühren erhoben haben -- Indexierer mit dem höchsten geschätzten effektiven Jahreszins +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Darüber hinaus können Sie Ihren ROI berechnen und die besten Indexierer nach Name, Adresse oder Subgraph suchen. +### Step 3. Monitor Participants in the Network -### Teilnehmer-Seite +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -Diese Seite bietet einen Überblick über alle „Teilnehmer“, d. h. alle am Netzwerk beteiligten Personen wie Indexer, Delegatoren und Kuratoren. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexierer +#### Indexer -![Explorer Bild 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexierer sind das Rückgrat des Protokolls. Sie setzen auf Subgraphen, indizieren sie und stellen allen, die Subgraphen konsumieren, Abfragen zur Verfügung. -In der Tabelle Indizierer können Sie die Delegationsparameter eines Indizierers, seinen Einsatz, die Höhe seines Einsatzes für jeden Subgraphen und die Höhe seiner Einnahmen aus Abfragegebühren und Indizierungsprämien sehen. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Besonderheiten** -- Abfragegebührenkürzung – der Prozentsatz der Abfragegebührenrabatte, den der Indexierer bei der Aufteilung mit Delegatoren teien. -- Effektiver Reward Cut - der auf den Delegationspool angewandte Indexierungs-Reward Cut. Ist er negativ, bedeutet dies, dass der Indexierer einen Teil seiner Rewards abgibt. Ist er positiv, bedeutet dies, dass der Indexierer einen Teil seiner Rewards behält. -- Verbleibende Abklingzeit - die verbleibende Zeit, bis der Indexierer die oben genannten Delegationsparameter ändern kann. Abklingzeiten werden von Indexierern festgelegt, wenn sie ihre Delegationsparameter aktualisieren. -- Eigenkapital - Dies ist der hinterlegte Einsatz des Indexierers, der bei bösartigem oder falschem Verhalten gekürzt werden kann. -- Delegiert - Einsätze von Delegatoren, die vom Indexierer zugewiesen werden können, aber nicht durchgeschnitten werden können. -- Zugewiesen - Einsatz, den Indexierer aktiv den Subgraphen zuweisen, die sie indizieren. -- Verfügbare Delegationskapazität - die Menge der delegierten Anteile, die die Indexierer noch erhalten können, bevor sie überdelegiert werden. -- Maximale Delegationskapazität - der maximale Betrag an delegiertem Einsatz, den der Indexierer produktiv akzeptieren kann. Ein überschüssiger delegierter Einsatz kann nicht für Zuteilungen oder Belohnungsberechnungen verwendet werden. -- Abfragegebühren - dies ist die Gesamtsumme der Gebühren, die Endnutzer über die gesamte Zeit für Abfragen von einem Indexierer bezahlt haben. -- Indexierer Rewards - dies ist die Gesamtsumme der Indexierer Rewards, die der Indexierer und seine Delegatoren über die gesamte Zeit verdient haben. Indexierer Rewards werden durch die Ausgabe von GRTs ausgezahlt. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexierer können sowohl Abfragegebühren als auch Indexierungsprämien verdienen. Funktionell geschieht dies, wenn Netzwerkteilnehmer GRT an einen Indexierer delegieren. Dadurch können Indexierer je nach ihren Indexierer-Parametern Abfragegebühren und Belohnungen erhalten. @@ -86,9 +106,9 @@ Indexierer können sowohl Abfragegebühren als auch Indexierungsprämien verdien Um mehr darüber zu erfahren, wie man ein Indexierer wird, können Sie einen Blick auf die [offizielle Dokumentation](/indexing/overview/) oder [The Graph Academy Indexer guides](https://thegraph.academy/delegators/choosing-indexers/) werfen. -![Indizierungs-Detailfenster](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Kuratoren +#### Curators Kuratoren analysieren Subgraphen, um festzustellen, welche Subgraphen von höchster Qualität sind. Sobald ein Kurator einen potenziell hochwertigen Subgraphen gefunden hat, kann er ihn kuratieren, indem er seine Bindungskurve signalisiert. Auf diese Weise teilen die Kuratoren den Indexierern mit, welche Subgraphen von hoher Qualität sind und indiziert werden sollten. @@ -102,11 +122,11 @@ In der unten aufgeführten Tabelle von The Curator können Sie sehen: - Die Anzahl der hinterlegten GRT - Die Anzahl der Anteile, die ein Kurator besitzt -![Explorer Bild 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) Wenn Sie mehr über die Rolle des Kurators erfahren möchten, besuchen Sie [offizielle Dokumentation](/resources/roles/curating/) oder [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegatoren +#### Delegatoren Delegatoren spielen eine Schlüsselrolle bei der Aufrechterhaltung der Sicherheit und Dezentralisierung des Graph Network. Sie beteiligen sich am Netzwerk, indem sie GRT-Token an einen oder mehrere Indexierer delegieren (d.h. „staken“). @@ -114,7 +134,7 @@ Delegatoren spielen eine Schlüsselrolle bei der Aufrechterhaltung der Sicherhei - Die Delegatoren wählen die Indexierer auf der Grundlage einer Reihe von Variablen aus, wie z. B. frühere Leistungen, Indexierungsvergütungssätze und Senkung der Abfragegebühren. - Die Reputation innerhalb der Community kann bei der Auswahl ebenfalls eine Rolle spielen. Es wird empfohlen, mit den ausgewählten Indexierern über [The Graph's Discord] (https://discord.gg/graphprotocol) oder [The Graph Forum] (https://forum.thegraph.com/) in Kontakt zu treten. -![Explorer Bild 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In der Tabelle „Delegatoren“ können Sie die aktiven Delegatoren in der Community und wichtige Metriken einsehen: @@ -127,9 +147,9 @@ In der Tabelle „Delegatoren“ können Sie die aktiven Delegatoren in der Comm If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Netzwerk-Seite +### Step 4. Analyze Network Performance -Auf dieser Seite können Sie globale KPIs sehen und haben die Möglichkeit, auf eine Epochenbasis zu wechseln und die Netzwerkmetriken detaillierter zu analysieren. Diese Details geben Ihnen ein Gefühl dafür, wie sich das Netzwerk im Laufe der Zeit entwickelt. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Überblick @@ -147,7 +167,7 @@ Ein paar wichtige Details sind zu beachten: - **Die Abfragegebühren stellen die von den Verbrauchern** generierten Gebühren dar. Sie können von den Indexierern nach einem Zeitraum von mindestens 7 Epochen (siehe unten) eingefordert werden (oder auch nicht), nachdem ihre Zuweisungen zu den Subgraphen abgeschlossen wurden und die von ihnen gelieferten Daten von den Verbrauchern validiert wurden. - **Die Indizierungs-Belohnungen stellen die Anzahl der Belohnungen dar, die die Indexierer während der Epoche von der Netzwerkausgabe beansprucht haben.** Obwohl die Protokollausgabe festgelegt ist, werden die Belohnungen erst geprägt, wenn die Indexierer ihre Zuweisungen zu den Subgraphen schließen, die sie indiziert haben. Daher variiert die Anzahl der Rewards pro Epoche (d. h. während einiger Epochen könnten Indexer kollektiv Zuweisungen geschlossen haben, die seit vielen Tagen offen waren). -![Explorer Bild 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochen @@ -161,69 +181,77 @@ Im Abschnitt Epochen können Sie je nach Epochen Metriken analysieren: - Die verteilenden Epochen sind die Epochen, in denen die Zustandskanäle für die Epochen abgerechnet werden und die Indexierer ihre Rückerstattung der Abfragegebühren beantragen können. - Die abgeschlossenen Epochen sind die Epochen, für die die Indexierer keine Abfragegebühren-Rabatte mehr beanspruchen können. -![Explorer Bild 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Ihr Benutzerprofil +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Ihr persönliches Profil ist der Ort, an dem Sie Ihre Netzwerkaktivitäten sehen können, unabhängig von Ihrer Rolle im Netzwerk. Ihre Krypto- Wallet dient als Ihr Benutzerprofil, und im Benutzer-Dashboard können Sie die folgenden Registerkarten sehen: +### Step 2. Explore the Tabs -### Profil-Übersicht +#### Profil-Übersicht In diesem Abschnitt können Sie Folgendes sehen: -- Jede Ihrer aktuellen Aktionen, die Sie durchgeführt haben. -- Ihre Profilinformationen, Beschreibung und Website (falls Sie eine hinzugefügt haben). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Bild 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Registerkarte "Subgraphen" +#### Registerkarte "Subgraphen" -Auf der Registerkarte "Subgraphen" sehen Sie Ihre veröffentlichten Subgraphen. +The Subgraphs tab displays all your published Subgraphs. -> Dies schließt keine Subgraphen ein, die mit dem CLI zu Testzwecken bereitgestellt wurden. Subgraphen werden erst angezeigt, wenn sie im dezentralen Netzwerk veröffentlicht werden. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Bild 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Registerkarte "Indizierung" +#### Registerkarte "Indizierung" -Auf der Registerkarte "Indizierung" finden Sie eine Tabelle mit allen aktiven und historischen Zuweisungen zu Subgraphen. Hier finden Sie auch Diagramme, in denen Sie Ihre bisherige Leistung als Indexierer sehen und analysieren können. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Dieser Abschnitt enthält auch Angaben zu Ihren Netto-Indexierer-Belohnungen und Netto-Abfragegebühren. Sie sehen die folgenden Metriken: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - der Einsatz von Delegatoren, der von Ihnen zugewiesen werden kann, aber nicht reduziert werden kann -- Gesamte Abfragegebühren - die gesamten Gebühren, die Nutzer im Laufe der Zeit für von Ihnen durchgeführte Abfragen bezahlt haben -- Indexierer Rewards - der Gesamtbetrag der Indexierer Rewards, die Sie erhalten haben, in GRT -- Gebührensenkung - der Prozentsatz der Rückerstattungen von Abfragegebühren, den Sie behalten, wenn Sie mit Delegatoren teilen -- Rewardkürzung - der Prozentsatz der Indexierer-Rewards, den Sie behalten, wenn Sie mit Delegatoren teilen -- Eigenkapital - Ihr hinterlegter Einsatz, der bei böswilligem oder falschem Verhalten gekürzt werden kann +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Bild 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Registerkarte "Delegieren" +![Indexer Stats](/img/Indexer-Stats.png) -Die Delegatoren sind wichtig für The Graph Network. Sie müssen ihr Wissen nutzen, um einen Indexierer auszuwählen, der eine gesunde Rendite abwirft. +#### Registerkarte "Delegieren" -Auf der Registerkarte "Delegatoren" finden Sie die Details Ihrer aktiven und historischen Delegationen sowie die Metriken der Indexierer, an die Sie delegiert haben. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In der ersten Hälfte der Seite sehen Sie Ihr Delegationsdiagramm sowie das Diagramm „Nur Belohnungen“. Auf der linken Seite sehen Sie die KPIs, die Ihre aktuellen Delegationskennzahlen widerspiegeln. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Auf dieser Registerkarte sehen Sie unter anderem die Delegator-Metriken: +Top Section: -- Delegationsprämien insgesamt -- Unrealisierte Rewards insgesamt -- Gesamte realisierte Rewards +- View delegation and rewards-only charts +- Track key metrics: + - Delegationsprämien insgesamt + - Unrealized rewards + - Realized Rewards -In der zweiten Hälfte der Seite finden Sie die Tabelle der Delegationen. Hier sehen Sie die Indexierer, an die Sie delegiert haben, sowie deren Details (wie z. B. Belohnungskürzungen, Abklingzeit, usw.). +Bottom Section: -Mit den Schaltflächen auf der rechten Seite der Tabelle können Sie Ihre Delegierung verwalten - mehr delegieren, die Delegierung aufheben oder Ihre Delegierung nach der Auftauzeit zurückziehen. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Beachten Sie, dass dieses Diagramm horizontal gescrollt werden kann. Wenn Sie also ganz nach rechts scrollen, können Sie auch den Status Ihrer Delegation sehen (delegierend, nicht delegierend, zurückziehbar). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Bild 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Registerkarte "Kuratieren" +#### Registerkarte "Kuratieren" -Auf der Registerkarte „Kuratierung“ finden Sie alle Subgraphen, für die Sie ein Signal geben (damit Sie Abfragegebühren erhalten). Mit der Signalisierung können Kuratoren den Indexierern zeigen, welche Subgraphen wertvoll und vertrauenswürdig sind und somit signalisieren, dass sie indiziert werden müssen. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Auf dieser Registerkarte finden Sie eine Übersicht über: @@ -232,22 +260,22 @@ Auf dieser Registerkarte finden Sie eine Übersicht über: - Abfragebelohnungen pro Subgraph - Aktualisiert bei Datumsdetails -![Explorer Bild 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Ihre Profileinstellungen +#### Ihre Profileinstellungen In Ihrem Benutzerprofil können Sie Ihre persönlichen Profildaten verwalten (z. B. einen ENS-Namen einrichten). Wenn Sie ein Indexierer sind, haben Sie sogar noch mehr Zugang zu den Einstellungen, die Ihnen zur Verfügung stehen. In Ihrem Benutzerprofil können Sie Ihre Delegationsparameter und Operatoren einrichten. - Operatoren führen im Namen des Indexierers begrenzte Aktionen im Protokoll durch, wie z. B. das Öffnen und Schließen von Allokationen. Operatoren sind in der Regel andere Ethereum-Adressen, die von ihrer Staking-Wallet getrennt sind und einen beschränkten Zugang zum Netzwerk haben, den Indexer persönlich festlegen können - Mit den Delegationsparametern können Sie die Verteilung der GRT zwischen Ihnen und Ihren Delegatoren steuern. -![Explorer Bild 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) Als Ihr offizielles Portal in die Welt der dezentralen Daten ermöglicht Ihnen der Graph Explorer eine Vielzahl von Aktionen, unabhängig von Ihrer Rolle im Netzwerk. Sie können zu Ihren Profileinstellungen gelangen, indem Sie das Dropdown-Menü neben Ihrer Adresse öffnen und dann auf die Schaltfläche Einstellungen klicken. ![Wallet details](/img/Wallet-Details.png) -## Zusätzliche Ressourcen +### Zusätzliche Ressourcen ### Video-Leitfaden From c1f53449b5406d8d67009b628257c147b3669dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:12 -0400 Subject: [PATCH 0135/1709] New translations explorer.mdx (Japanese) --- website/src/pages/ja/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ja/subgraphs/explorer.mdx b/website/src/pages/ja/subgraphs/explorer.mdx index 0357d63fda7e..303ac4e7f221 100644 --- a/website/src/pages/ja/subgraphs/explorer.mdx +++ b/website/src/pages/ja/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: グラフエクスプローラ --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## 概要 -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- チャート、現在のデプロイメント ID、その他のメタデータなどの詳細情報の表示 -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - サブグラフの統計情報(割り当て数、キュレーターなど) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. インデクサー(Indexers) +#### インデクサー -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - インデクサーが生産的に受け入れることができる委任されたステークの最大量。超過した委任されたステークは、割り当てや報酬の計算には使用できません。 -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - インデクサーとそのデリゲーターが過去に獲得したインデクサー報酬の総額。 インデクサー報酬は GRT の発行によって支払われます +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. キュレーター +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - デポジットされた GRT の数 - キュレーターが所有するシェア数 -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. デリゲーター +#### 委任者 Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### 概要 @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### エポック @@ -161,69 +181,77 @@ A few key details to note: - 分配エポックとは、そのエポックの状態チャンネルが確定し、インデクサーがクエリフィーのリベートを請求できるようになるエポックのこと - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## ユーザープロファイル +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### プロフィールの概要 +#### プロフィールの概要 In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### サブグラフタブ +#### サブグラフタブ -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### インデックスタブ +#### インデックスタブ -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -このセクションには、インデクサー報酬とクエリフィーの詳細も含まれます。 以下のような指標が表示されます: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - あなたが割り当てることができるデリゲーターからのステークですが、スラッシュされることはできません -- Total Query Fees - 提供したクエリに対してユーザーが支払った料金の合計額 -- Indexer Rewards - 受け取ったインデクサー報酬の総額(GRT) -- Fee Cut - デリゲーターとの分配時に保持するクエリフィーリベートの割合 -- Rewards Cut - デリゲーターとの分配時に保有するインデクサー報酬の割合 -- Owned - 預けているステークであり、悪質な行為や不正行為があった場合にスラッシュされる可能性がある +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### デリゲーションタブ +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### デリゲーションタブ -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -ページの前半には、自分のデリゲーションチャートと報酬のみのチャートが表示されています。 左側には、現在のデリゲーションメトリクスを反映した KPI が表示されています。 +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -このタブに表示される委任者の指標には、次のものがあります。 +Top Section: -- デリゲーション報酬の合計 -- 未実現報酬の合計 -- 実現報酬の合計 +- View delegation and rewards-only charts +- Track key metrics: + - デリゲーション報酬の合計 + - Unrealized rewards + - Realized Rewards -ページの後半には、デリゲーションテーブルがあります。 ここには、あなたがデリゲートしたインデクサーとその詳細(報酬のカットやクールダウンなど)が表示されています。 +Bottom Section: -テーブルの右側にあるボタンで、デリゲートを管理することができます。追加でデリゲートする、デリゲートを解除する、解凍期間後にデリゲートを取り消すなどの操作が可能です。 +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -このグラフは水平方向にスクロールできるので、右端までスクロールすると、委任のステータス (委任中、委任解除中、取り消し可能) も表示されることに注意してください。 +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### キュレーションタブ +#### キュレーションタブ -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. このタブでは、以下の概要を見ることができます: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - 日付詳細に更新済み -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### プロフィールの設定 +#### プロフィールの設定 ユーザープロフィールでは、個人的なプロフィールの詳細(ENS ネームの設定など)を管理することができます。 インデクサーの方は、さらに多くの設定が可能です。 ユーザープロファイルでは、デリゲーションパラメーターとオペレーターを設定することができます。 - オペレーターは、インデクサーに代わって、割り当ての開始や終了など、プロトコル上の限定的なアクションを行います。 オペレーターは通常、ステーキングウォレットとは別の他の Ethereum アドレスで、インデクサーが個人的に設定できるネットワークへのゲート付きアクセス権を持っています。 - 「Delegation parameters」では、自分とデリゲーターの間で GRT の分配をコントロールすることができます。 -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## その他のリソース +### その他のリソース ### Video Guide From cdb90ec32dd65726565efe5cb04f8e44404ed9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:13 -0400 Subject: [PATCH 0136/1709] New translations explorer.mdx (Portuguese) --- website/src/pages/pt/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/pt/subgraphs/explorer.mdx b/website/src/pages/pt/subgraphs/explorer.mdx index c1681cf69573..d7654009ec50 100644 --- a/website/src/pages/pt/subgraphs/explorer.mdx +++ b/website/src/pages/pt/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Desbloqueie o mundo dos subgraphs e dos dados de rede com o [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Visão geral -O Graph Explorer consiste de múltiplas partes onde pode-se interagir com [subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegar](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engajar com [participantes](https://thegraph.com/explorer/participants?chain=arbitrum-one), visualizar [informações de rede](https://thegraph.com/explorer/network?chain=arbitrum-one), e acessar o seu perfil de utilizador. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Por Dentro do Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -A seguir, veja um resumo de todas as funções importantes do Graph Explorer. Para saber mais, veja o [vídeo-guia do Graph Explorer](/subgraphs/explorer/#video-guide). +## Pré-requisitos -### Página de Subgraphs +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -Após implantar e editar o seu subgraph no Subgraph Studio, vá para o [Graph Explorer](https://thegraph.com/explorer) e clique no link "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)", na barra de navegação, para acessar o seguinte: +## Navigating Graph Explorer -- Os seus próprios subgraphs completos -- Subgraphs editados por outros -- O subgraph exato que quer (com base na data de criação, quantidade de sinalização, ou nome). +### Step 1. Explore Subgraphs -![Imagem do Explorer #1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -Ao clicar em um subgraph, será possível: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Testar queries na área de testes e aproveitar detalhes de rede para fazer decisões informadas. -- Sinalizar GRT no seu próprio subgraph, ou nos subgraphs de outros, para avisar os indexadores sobre a sua importância e qualidade. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - Isto é importante, porque sinalizar em um subgraph incentiva a sua indexação; ou seja, ele aparecerá em breve na rede para servir queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Imagem do Explorer 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Testar queries na área de testes e aproveitar detalhes de rede para fazer decisões informadas. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) Na página dedicada de cada subgraph, é possível: -- Sinalizar ou cancelar sinais em subgraphs -- Ver mais detalhes como gráficos, ID de lançamento atual, e outros metadados -- Trocar versões para explorar iterações passadas do subgraph - Solicitar queries de subgraphs através da GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Testar subgraphs no playground - Ver os indexadores que indexam em um certo subgraph - Estatísticas do subgraph (alocações, Curadores, etc.) -- Visualizar a entidade que editou o subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Imagem do Explorer 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Página de Delegação +### Step 2. Delegate GRT -Na [página de Delegação](https://thegraph.com/explorer/delegate?chain=arbitrum-one), é possível encontrar informações sobre como delegar, adquirir GRT, e escolher um Indexador. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -Nesta página, pode-se ver: +Here, you can: -- Os Indexadores que coletaram mais taxas de query -- Indexadores com a maior taxa anual efetiva +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Também é possível calcular a sua taxa de juros e buscar pelos maiores Indexadores por nome, endereço, ou subgraph. +### Step 3. Monitor Participants in the Network -### Participantes +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -Esta página providencia um resumo de todos os "participantes", incluindo todos que participam na rede: por exemplo, Indexadores, Delegantes, e Curadores. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexadores +#### Indexadores -![Imagem do Explorer 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Os Indexadores formam a fundação do protocolo. Eles investem em subgraphs, os indexam, e servem queries a qualquer um que consome os subgraphs. -Na tabela de Indexadores, pode-se ver os parâmetros de delegação de um Indexador; a sua participação; quanto ele investiu em cada subgraph; e a receita que ele obteve com taxas de query e recompensas de indexação. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Detalhes** -- Porção de Taxa de Query — a percentagem dos rebates da taxa de query que o Indexador guarda ao dividir com os Delegantes. -- Porção de Recompensa Efetiva — a porção de recompensa de indexação, aplicada ao pool de delegação. Se for negativa, ela significa que o Indexador está a distribuir parte das suas recompensas. Se for positiva, significa que o Indexador guarda um pouco das recompensas. -- Tempo de Recarga — o tempo que resta até o Indexador poder mudar os parâmetros de delegação acima. Os períodos de recarga são configurados pelos Indexadores quando atualizam os seus parâmetros de delegação. -- Títulos — Os stakes investidos pelo Indexador, que podem ser cortados por comportamento malicioso ou incorreto. -- Delegado — Stake de Delegantes que pode ser alocado pelo Indexador, mas não pode ser cortado. -- Alocado — O stake que os Indexadores alocam de forma ativa aos subgraphs que indexam. -- Capacidade Disponível de Delegação — a quantia de stakes delegados que os Indexadores ainda podem receber, antes que sejam delegados excessivamente. -- Capacidade Máxima de Delegação — a quantidade máxima de stake delegado que o Indexador pode aceitar produtivamente. Um excesso de stake delegado não pode ser usado para alocações ou cálculos de recompensas. -- Taxas de Query — as taxas totais que os utilizadores finais pagaram por queries de um Indexador durante todo o seu tempo. -- Recompensas de Indexador — as recompensas totais recebidas pelo Indexador e pelos Delegantes temporalmente. As recompensas de Indexador são pagas pela emissão de GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Os indexadores podem ganhar taxas de query e recompensas de indexação. Funcionalmente, isto acontece quando participantes da rede delegam GRT a um Indexador. Isto permite que Indexadores recebam taxas e recompensas de queries, a depender dos seus parâmetros de Indexador. @@ -86,9 +106,9 @@ Os indexadores podem ganhar taxas de query e recompensas de indexação. Funcion Para saber mais sobre como se tornar um Indexador, veja a [documentação oficial](/indexing/overview/) ou os [guias de Indexador da The Graph Academy](https://thegraph.academy/delegators/choosing-indexers/) -![Painel de detalhes de Indexação](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curadores +#### Curators Os Curadores analisam subgraphs para identificar os de maior qualidade. Quando um Curador achar um subgraph atraente, ele poderá curá-lo com sinais na sua bonding curve. Ao fazer isso, os Curadores avisam aos Indexadores quais subgraphs têm qualidade alta e merecem ser indexados. @@ -102,11 +122,11 @@ Na tabela de Curador abaixo, é possível ver: - O número de GRT depositado - O número de ações que um Curador tem -![Imagem do Explorer 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) Para saber mais sobre a função de Curador, veja a [documentação oficial](/resources/roles/curating/) ou visite a [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegantes +#### Delegantes Os Delegantes são fundamentais na manutenção da segurança e da descentralização da The Graph Network. Eles participam da rede com a delegação (ou seja, o investimento — ou “staking”) de tokens GRT para um ou mais indexadores. @@ -114,7 +134,7 @@ Os Delegantes são fundamentais na manutenção da segurança e da descentraliza - Os Delegantes selecionam Indexadores com base em variáveis diferentes, que incluem: histórico de desempenho, taxas de recompensa por indexação, e porções de taxa de query. - A reputação na comunidade também pode ser importante no processo de seleção. É recomendado se conectar com os Indexadores selecionados via [o Discord](https://discord.gg/graphprotocol) ou [o fórum oficial do The Graph](https://forum.thegraph.com/). -![Imagem do Explorer 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) A tabela de Delegantes mostra os Delegantes ativos na comunidade e as métricas importantes: @@ -127,9 +147,9 @@ A tabela de Delegantes mostra os Delegantes ativos na comunidade e as métricas Para saber mais sobre a função de Delegante, veja a [documentação oficial](/resources/roles/delegating/delegating/) ou visite a [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Rede +### Step 4. Analyze Network Performance -A seção de Rede mostra indicadores-chave de desempenho (KPIs) globais, e permite trocar para uma base por epoch e analisar métricas de rede em mais detalhes. Estes detalhes darão-lhe uma ideia do desempenho gradual da rede. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Visão geral @@ -147,7 +167,7 @@ Alguns detalhes importantes: - **As taxas de query representam as taxas geradas pelos consumidores**, e podem ser reivindicadas (ou não) pelos Indexadores após um período de pelo menos 7 epochs (veja abaixo), após as suas alocações aos subgraphs forem fechadas e os dados que serviram forem validados pelos consumidores. - **As recompensas de indexação representam a quantidade de recompensas que os Indexadores resgataram da emissão da rede durante a epoch.** Apesar da emissão do protocolo ser fixa, as recompensas só são mintadas quando os Indexadores fecham as suas alocações aos subgraphs que indexaram. Assim, o número de recompensas por epoch varia (por ex., durante algumas epochs, os Indexadores podem ter coletivamente fechado alocações abertas há muitos dias). -![Imagem do Explorer 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ Na seção de Epochs, pode analisar, numa base por epoch, métricas como: - Nas epochs de distribuição, são estabelecidos os canais de estado para as epochs, e os Indexadores podem reivindicar os seus rebates de taxas de query. - As epochs finalizadas são aquelas que não têm mais rebates de taxas de query para serem resgatadas pelos Indexadores; portanto, finalizadas. -![Imagem do Explorer 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Seu Perfil de Utilizador +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -É no seu perfil pessoal que verás a sua atividade na rede, sem se preocupar com a sua participação nela. A sua carteira de cripto será o seu perfil de utilizador, e com o Painel de Controlo do Utilizador, pode-se ver: +### Step 2. Explore the Tabs -### Resumo do Perfil +#### Resumo do Perfil Esta página mostra: -- Quaisquer ações atuais que tenha realizado. -- As suas informações de perfil, sua descrição, e seu sítio da web (se tiver adicionado um). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Imagem do Explorer 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Aba de Subgraphs +#### Aba de Subgraphs -A aba de Subgraphs mostra os subgraphs editados por você. +The Subgraphs tab displays all your published Subgraphs. -> Isso não inclui nenhum subgraph implantado com a CLI para fins de teste. Os subgraphs só aparecerão quando forem editados na rede descentralizada. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Imagem do Explorer 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Aba de Indexação +#### Aba de Indexação -A aba de Indexação mostrará uma tabela com todas as alocações ativas e históricas aos subgraphs, além de gráficos para analisar e ver o seu histórico de desempenho como um Indexador. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Esta secção também incluirá detalhes sobre as suas recompensas de Indexador e taxas de consulta. Verá as seguintes métricas: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Stake Delegado — O stake de Delegados que pode ser alocado por você, mas não pode ser cortado -- Taxas Totais de Query — as taxas totais que os utilizadores pagaram por consultas que serviu temporalmente -- Recompensas de Indexador — a quantia total de recompensas de Indexador que recebeu, em GRT -- Porção de Taxa — a % dos rebates das taxas de query que guardará ao dividir com os Delegantes -- Porção de Recompensas — a % dos rebates das recompensas de Indexador que guarda ao dividir com os Delegantes -- Títulos — o seu stake depositado, que pode ser cortado por comportamento malicioso ou incorreto +Track your Indexer performance with visual charts and key metrics, including: -![Imagem do Explorer 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Aba de Delegação +![Indexer Stats](/img/Indexer-Stats.png) -Os Delegantes são importantes para a Graph Network. Eles devem usar bem o seu conhecimento para escolher um Indexador que fornecerá um retorno saudável sobre as recompensas. +#### Aba de Delegação -A aba de Delegantes exibe os detalhes das suas delegações ativas e históricas, além das métricas dos Indexadores para os quais delegou. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -Na primeira metade da página estão o seu gráfico de delegação e um gráfico só de recompensas. Na esquerda, pode ver os KPIs (indicadores de desempenho) que refletem as suas métricas atuais de delegação. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -As métricas de Delegado nesta aba incluem: +Top Section: -- Recompensas totais de delegação -- Recompensas não realizadas -- Recompensas realizadas +- View delegation and rewards-only charts +- Track key metrics: + - Recompensas totais de delegação + - Unrealized rewards + - Realized Rewards -Na segunda metade da página está a tábua de delegações. Aqui, pode ver os Indexadores aos quais delegou, assim como os seus detalhes (como porções de recompensas, tempo de recarga, etc.). +Bottom Section: -Com os botões no lado direito da tábua, pode gestar a sua delegação — delegar mais, cancelar delegações, ou retirar a sua delegação após o período de degelo. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Lembre-se que este gráfico pode ser rolado horizontalmente, então se rolar totalmente à direita, pode ver o estado da sua delegação (a delegar, a cancelar, sacável). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Imagem do Explorer 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Aba de Curadoria +#### Aba de Curadoria -Na aba de Curadoria, encontrará todos os subgraphs nos quais sinaliza (assim, capaz de receber taxas de consulta). A sinalização permite que os Curadores destaquem aos Indexadores quais subgraphs são valiosos e confiáveis, e assim, indicar que eles devem ser indexados. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Dentro desta aba está um resumo de: @@ -232,22 +260,22 @@ Dentro desta aba está um resumo de: - Recompensas de query por subgraph - Detalhes de datas de atualização -![Imagem do Explorer 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Configurações do Seu Perfil +#### Configurações do Seu Perfil Dentro do seu perfil de utilizador, poderá configurar os detalhes do seu perfil pessoal (como a configuração de um nome ENS). Se fores um Indexador, terá ainda mais acesso às configurações no alcance dos seus dedos. Em seu perfil de utilizador, poderá configurar os seus parâmetros de delegação e os seus operadores. - Os Operadores tomam ações limitadas no protocolo em nome do Indexador, como abertura e fechamento de alocações. Os operadores tendem a ser outros endereços do Ethereum, separados da sua carteira de staking, com acesso guardado à rede que pode ser configurado pessoalmente pelos Indexadores - Parâmetros de delegação que permitem controlar a distribuição de GRT entre você e os seus Delegantes. -![Imagem do Explorer 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) Como o seu portal oficial no mundo dos dados descentralizados, o Graph Explorer permite-lhe tomar uma variedade de ações, independente do seu papel na rede. Pode acessar as suas configurações do perfil ao abrir o menu próximo ao seu endereço, e depois, clicar no botão de Configurações. ![Detalhes de carteira](/img/Wallet-Details.png) -## Outros Recursos +### Outros Recursos ### Guia em Vídeo From c3a3444bd507393500d66df7c10936a490578084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:14 -0400 Subject: [PATCH 0137/1709] New translations explorer.mdx (Russian) --- website/src/pages/ru/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ru/subgraphs/explorer.mdx b/website/src/pages/ru/subgraphs/explorer.mdx index b963e985dd99..6de281513f1b 100644 --- a/website/src/pages/ru/subgraphs/explorer.mdx +++ b/website/src/pages/ru/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Обзор -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Внутреннее устройство Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -Ниже приведён обзор всех ключевых функций Graph Explorer. Для получения дополнительной помощи Вы можете посмотреть [видеоруководство по Graph Explorer](/subgraphs/explorer/#video-guide). +## Предварительные требования -### Страница субграфов +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Субграфы, опубликованные другими -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Изображение Explorer 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Протестировать запросы на тестовой площадке и использовать данные сети для принятия обоснованных решений. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Изображение Explorer 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Протестировать запросы на тестовой площадке и использовать данные сети для принятия обоснованных решений. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Просмотр дополнительных сведений, таких как диаграммы, текущий идентификатор развертывания и другие метаданные -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Статистика субграфов (распределения, кураторы и т. д.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Изображение Explorer 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Страница Делегатора +### Step 2. Delegate GRT -На [странице Делегатора](https://thegraph.com/explorer/delegate?chain=arbitrum-one) Вы можете найти информацию о делегировании, приобретении GRT и выборе Индексатора. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -На этой странице Вы можете увидеть следующее: +Here, you can: -- Индексаторы, собравшие наибольшее количество комиссий за запросы -- Индексаторы с самой высокой расчетной годовой процентной ставкой +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Страница участников +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -На этой странице представлен общий обзор всех «участников», включая всех участников сети, таких как Индексаторы, Делегаторы и Кураторы. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Индексаторы +#### Индексаторы -![Изображение Explorer 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Особенности** -- Часть комиссии за запросы — это процент от возвратов комиссии за запросы, который Индексатор оставляет себе при распределении с Делегаторами. -- Эффективная часть вознаграждения — это доля вознаграждения за индексирование, применяемая к пулу делегирования. Если она отрицательная, это означает, что Индексатор отдаёт часть своих вознаграждений. Если она положительная, это означает, что Индексатор сохраняет часть своих вознаграждений. -- Оставшееся время восстановления — время, оставшееся до того, как Индексатор сможет изменить вышеуказанные параметры делегирования. Периоды восстановления устанавливаются Индексаторами при обновлении параметров делегирования. -- Собственность — это депозитная доля Индексатора, которая может быть урезана за злонамеренное или некорректное поведение. -- Делегированный стейк — доля Делегаторов, которая может быть распределена Индексатором, но не может быть сокращена. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Доступная емкость делегирования — объем делегированной доли, которую Индексаторы всё ещё могут получить, прежде чем они будут перераспределены. -- Максимальная емкость делегирования — максимальная сумма делегированной доли, которую Индексатор может продуктивно принять. Избыточная делегированная ставка не может быть использована для распределения или расчета вознаграждений. -- Плата за запросы — это общая сумма комиссий, которую конечные пользователи заплатили за запросы Индексатора за все время. -- Вознаграждения Индексатора — это общая сумма вознаграждений Индексатора, полученная им и его Делегаторами за все время. Вознаграждения Индексаторов выплачиваются посредством выпуска GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Индексаторы могут получать как комиссии за запросы, так и вознаграждения за индексацию. Фактически это происходит, когда участники сети делегируют GRT Индексатору. Это позволяет Индексаторам получать комиссионные и вознаграждения в зависимости от параметров самого Индексатора. @@ -86,9 +106,9 @@ In the Indexers table, you can see an Indexers’ delegation parameters, their s Чтобы узнать больше о том, как стать Индексатором, Вы можете ознакомиться с [официальной документацией](/indexing/overview/) или [руководствами для Индексаторов Академии The Graph.] (https://thegraph.academy/delegators/choosing-indexers/) -![Панель сведений об индексировании](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Кураторы +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ Curators analyze Subgraphs to identify which Subgraphs are of the highest qualit - Количество GRT, которое было внесено - Количество акций, которыми владеет Куратор -![Изображение Explorer 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) Если Вы хотите узнать больше о роли Куратора, Вы можете сделать это, ознакомившись с [официальной документацией] (/resources/roles/curating/) или посетив [Академию The Graph](https://thegraph.academy/curators/). -#### 3. Делегаторы +#### Делегаторы Делегаторы играют ключевую роль в поддержании безопасности и децентрализации The Graph Network. Они участвуют в сети, делегируя (т. е. «стейкая») токены GRT одному или нескольким индексаторам. @@ -114,7 +134,7 @@ Curators analyze Subgraphs to identify which Subgraphs are of the highest qualit - Делегаторы выбирают Индексаторов на основе ряда различных переменных, таких как прошлые результаты, ставки вознаграждения за индексирование и снижение платы за запросы. - Репутация в сообществе может также повлиять на выбор. Вы можете связаться с Индексаторами через [Дискорд The Graph](https://discord.gg/graphprotocol) или [Форум The Graph](https://forum.thegraph.com/). -![Изображение Explorer 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) В таблице «Делегаторы» Вы можете увидеть активных в сообществе Делегаторов и важные показатели: @@ -127,9 +147,9 @@ Curators analyze Subgraphs to identify which Subgraphs are of the highest qualit If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Страница сети +### Step 4. Analyze Network Performance -На этой странице Вы можете увидеть глобальные ключевые показатели эффективности и получить возможность переключения на поэпохальную основу и более детально проанализировать сетевые метрики. Эти данные дадут Вам представление о том, как работает сеть на протяжении определённого времени. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Обзор @@ -147,7 +167,7 @@ If you want to learn more about how to become a Delegator, check out the [offici - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Изображение Explorer 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Эпохи @@ -161,69 +181,77 @@ If you want to learn more about how to become a Delegator, check out the [offici - Эпохи распределения - это эпохи, в которых состояния каналов для эпох регулируются, и Индексаторы могут требовать скидки на комиссию за запросы. - Завершенные эпохи — это эпохи, в которых Индексаторы больше не могут заявить возврат комиссии за запросы. -![Изображение Explorer 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Ваш профиль пользователя +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Ваш личный профиль — это место, где Вы можете видеть свою сетевую активность, независимо от своей роли в сети. Ваш криптокошелек будет действовать как Ваш профиль пользователя, а на панели управления пользователя Вы сможете увидеть следующие вкладки: +### Step 2. Explore the Tabs -### Обзор профиля +#### Обзор профиля В этом разделе Вы можете увидеть следующее: -- Любое из текущих действий, которые Вы совершили. -- Данные своего профиля, описание и веб-сайт (если Вы его добавили). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Изображение Explorer 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Вкладка "Субграфы" +#### Вкладка "Субграфы" -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Изображение Explorer 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Вкладка "Индексирование" +#### Вкладка "Индексирование" -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Этот раздел также будет содержать подробную информацию о Ваших чистых вознаграждениях Индексатора и чистой комиссии за запросы. Вы увидите следующие показатели: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Делегированная ставка — ставка Делегаторов, которую Вы можете выделить, но не можете уменьшить -- Общая комиссия за запросы — общая сумма комиссий, которую пользователи платили за запросы, обслуживаемые Вами за определенный период времени -- Вознаграждения Индексатора – общая сумма полученных Вами вознаграждений Индексатора в GRT -- Сокращение комиссии — процент скидки на комиссию за запросы, который Вы сохраните при разделении с Делегаторами -- Сокращение вознаграждений — процент вознаграждений Индексатора, который Вы сохраните при разделении с Делегаторами -- Собственность — Ваша внесенная ставка, которая может быть уменьшена за злонамеренное или неправильное поведение +Track your Indexer performance with visual charts and key metrics, including: -![Изображение Explorer 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Вкладка "Делегирование" +![Indexer Stats](/img/Indexer-Stats.png) -Делегаторы важны для the Graph Network. Они должны использовать свои знания, чтобы выбрать Индексатора, который обеспечит хороший доход от вознаграждений. +#### Вкладка "Делегирование" -На вкладке «Делегаторы» Вы можете найти подробную информацию о своих активных и прошлых делегированиях, а также показатели Индексаторов, которым Вы делегировали полномочия. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -В первой половине страницы Вы можете увидеть диаграмму делегирования, а также диаграмму только вознаграждений. Слева Вы можете увидеть ключевые показатели эффективности, которые отражают Ваши текущие показатели делегирования. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Метрики делегатора, которые Вы увидите на этой вкладке, включают: +Top Section: -- Общую сумму вознаграждений за делегирование -- Общее количество нереализованных наград -- Общее количество реализованных наград +- View delegation and rewards-only charts +- Track key metrics: + - Общую сумму вознаграждений за делегирование + - Unrealized rewards + - Realized Rewards -Во второй половине страницы находится таблица делегирования. Здесь Вы можете увидеть Индексаторов, которым Вы делегировали полномочия, а также подробную информацию о них (например, сокращение вознаграждений, время восстановления и т. д.). +Bottom Section: -С помощью кнопок в правой части таблицы Вы можете управлять своим делегированием: делегировать больше, отменить делегирование или отозвать свое делегирование после разморозки. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Имейте в виду, что эта диаграмма прокручивается по горизонтали, поэтому, если Вы прокрутите ее до конца вправо, Вы также сможете увидеть статус своего делегирования (делегирование, отмена делегирования, возможность отзыва). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Изображение Explorer 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Вкладка "Курирование" +#### Вкладка "Курирование" -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. На данной вкладке Вы найдете обзор: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - Даты обновления данных -![Изображение Explorer 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Параметры Вашего профиля +#### Параметры Вашего профиля В Вашем пользовательском профиле Вы сможете управлять деталями своего личного профиля (например, настройкой имени ENS). Если Вы Индексатор, у Вас есть еще больше возможностей для доступа к настройкам. В Вашем пользовательском профиле Вы сможете настроить параметры делегирования и операторов. - Операторы выполняют ограниченные действия в протоколе от имени Индексатора, такие как открытие и закрытие распределения. Операторами обычно являются другие адреса Ethereum, отдельные от их кошелька для ставок, с ограниченным доступом к сети, который Индексаторы могут настроить лично - Параметры делегирования позволяют Вам контролировать распределение GRT между Вами и Вашими Делегаторами. -![Изображение Explorer 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) Являясь Вашим официальным порталом в мир децентрализованных данных, Graph Explorer позволяет Вам выполнять самые разные действия, независимо от Вашей роли в сети. Вы можете перейти к настройкам своего профиля, открыв выпадающее меню рядом со своим адресом и нажав кнопку «Настройки». ![Wallet details](/img/Wallet-Details.png) -## Дополнительные ресурсы +### Дополнительные ресурсы ### Видео руководство From ed2875c548d85d8622be180d33d0a8962eaaf306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:16 -0400 Subject: [PATCH 0138/1709] New translations explorer.mdx (French) --- website/src/pages/fr/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/fr/subgraphs/explorer.mdx b/website/src/pages/fr/subgraphs/explorer.mdx index 7a7cf7e972db..f1a59e1c9c43 100644 --- a/website/src/pages/fr/subgraphs/explorer.mdx +++ b/website/src/pages/fr/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Découvrez le monde des subgraphs et des données de réseau avec [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Aperçu -Graph Explorer se compose de plusieurs parties où vous pouvez interagir avec les [subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [déléguer](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engager les [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), voir les [informations sur le réseau](https://thegraph.com/explorer/network?chain=arbitrum-one) et accéder à votre profil d'utilisateur. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## À l'intérieur de l'Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -Vous trouverez ci-dessous une liste de toutes les fonctionnalités clés de Graph Explorer. Pour obtenir une assistance supplémentaire, vous pouvez regarder le [guide vidéo de Graph Explorer](/subgraphs/explorer/#video-guide). +## Prérequis -### Page des subgraphs +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -Après avoir déployé et publié votre subgraph dans Subgraph Studio, allez sur [Graph Explorer](https://thegraph.com/explorer) et cliquez sur le lien "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" dans la barre de navigation pour accéder à ce qui suit : +## Navigating Graph Explorer -- Vos propres subgraphs finis -- Les subgraphs publiés par d'autres -- Le Subgraph exact que vous souhaitez (sur la base de la date de création, de la quantité de signal ou du nom). +### Step 1. Explore Subgraphs -![Image 1 de l'Explorer](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -Lorsque vous cliquez sur un subgraph, vous pouvez effectuer les opérations suivantes : +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Tester des requêtes dans le l'environnement de test et utiliser les détails du réseau pour prendre des décisions éclairées. -- Signalez des GRT sur votre propre subgraph ou sur les subgraphs d'autres personnes afin de sensibiliser les Indexeurs sur son importance et sa qualité. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - Ce point est essentiel, car le fait de signaler un subgraph incite à être indexé, ce qui signifie qu'il finira par faire surface sur le réseau pour répondre aux requêtes. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Image 2 de l'Explorer](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Tester des requêtes dans le l'environnement de test et utiliser les détails du réseau pour prendre des décisions éclairées. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) Sur la page dédiée à chaque subgraph, vous pouvez effectuer les opérations suivantes : -- Signaler/Dé-signaler sur les subgraphs -- Afficher plus de détails tels que des graphs, l'ID de déploiement actuel et d'autres métadonnées -- Passer d'une version à l'autre pour explorer les itérations passées du subgraph - Interroger les subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Tester les subgraphs dans le playground - Voir les Indexeurs qui indexent un certain subgraph - Statistiques du subgraph (allocations, conservateurs, etc.) -- Afficher l'entité qui a publié le subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Image 3 de l'Explorer](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Page de Délégué +### Step 2. Delegate GRT -Sur la [page de Délégué](https://thegraph.com/explorer/delegate?chain=arbitrum-one), vous trouverez des informations sur la délégation, l'acquisition de GRT et le choix d'un Indexeur. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -Sur cette page, vous pouvez voir les éléments suivants : +Here, you can: -- Indexeurs ayant perçu le plus de frais de requête -- Indexeurs avec l'APR estimé le plus élevé +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -En outre, vous pouvez calculer votre retour sur investissement et rechercher les meilleurs Indexeurs par nom, adresse ou subgraph. +### Step 3. Monitor Participants in the Network -### Page des participants +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -Cette page offre une vue d'ensemble de tous les "participants," c'est-à-dire de toutes les personnes qui participent au réseau, telles que les Indexeurs, les Déléguateurs et les Curateurs. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexeurs +#### Indexeurs -![Image 4 de l'Explorer](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Les Indexeurs constituent la colonne principale du protocole. Ils s'intéressent aux subgraphs, les indexent et servent des requêtes à tous ceux qui consomment des subgraphs. -Dans le tableau des Indexeurs, vous pouvez voir les paramètres de délégation d'un Indexeur, son staking, le montant qu'il a staké sur chaque subgraph et le revenu qu'il a tiré des frais de requête et des récompenses d'indexation. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. Spécificités -- Query Fee Cut - le % des frais de requête que l'Indexeur conserve lors de la répartition avec les Délégateurs. -- Effective Reward Cut - la réduction des récompenses d'indexation appliquée au pool de délégation. Si elle est négative, cela signifie que l'Indexeur donne une partie de ses récompenses. Si elle est positive, cela signifie que l'Indexeur garde une partie de ses récompenses. -- Cooldown Remaining - le temps restant avant que l'Indexeur puisse modifier les paramètres de délégation ci-dessus. Les périodes de cooldown sont définies par les Indexeurs lorsqu'ils mettent à jour leurs paramètres de délégation. -- Owned - Il s'agit du staking de l'Indexeur, qui peut être partiellement confisquée en cas de comportement malveillant ou incorrect. -- Delegated - Le staking des Délégateurs qui peut être allouée par l'Indexeur, mais ne peut pas être confisquée. -- Alloué - Le Staking que les Indexeurs allouent activement aux subgraphs qu'ils indexent. -- Available Delegation Capacity - le staking délégué que les Indexeurs peuvent encore recevoir avant d'être sur-délégués. -- Capacité de délégation maximale : montant maximum de participation déléguée que l'indexeur peut accepter de manière productive. Une mise déléguée excédentaire ne peut pas être utilisée pour le calcul des allocations ou des récompenses. -- Query Fees - il s'agit du total des frais que les utilisateurs finaux ont payés pour les requêtes d'un Indexeur au fil du temps. -- Récompenses de l'indexeur - il s'agit du total des récompenses de l'indexeur gagnées par l'indexeur et ses délégués sur toute la durée. Les récompenses des indexeurs sont payées par l'émission de GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Les Indexeurs peuvent gagner à la fois des frais de requête et des récompenses d'indexation. Fonctionnellement, cela se produit lorsque les participants au réseau délèguent des GRT à un Indexeur. Cela permet aux Indexeurs de recevoir des frais de requête et des récompenses en fonction de leurs paramètres d'Indexeur. @@ -86,9 +106,9 @@ Les Indexeurs peuvent gagner à la fois des frais de requête et des récompense Pour en savoir plus sur la façon de devenir Indexeur, vous pouvez consulter la [documentation officielle](/indexing/overview/) ou les [guides de l'Indexeur de The Graph Academy](https://thegraph.academy/delegators/choosing-indexers/) -![Volet Détails de l'indexation](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curateurs +#### Curators Les Curateurs analysent les subgraphs afin d'identifier ceux qui sont de la plus haute qualité. Une fois qu'un Curateur a trouvé un subgraph potentiellement de haute qualité, il peut le curer en signalant sa courbe de liaison. Ce faisant, les Curateurs indiquent aux Indexeurs quels subgraphs sont de haute qualité et devraient être indexés. @@ -102,11 +122,11 @@ Dans le tableau des Curateurs ci-dessous, vous pouvez voir : - Le nombre de GRT déposés - Nombre d'actions détenues par un curateur -![Image 6 de l'Explorer](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) Si vous souhaitez en savoir plus sur le rôle de Curateur, vous pouvez consulter la [documentation officielle](/resources/roles/curating/) ou [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Délégués +#### Délégateurs Les Délégateurs jouent un rôle clé dans le maintien de la sécurité et de la décentralisation de The Graph Network. Ils participent au réseau en déléguant (c'est-à-dire en "stakant") des jetons GRT à un ou plusieurs Indexeurs. @@ -114,7 +134,7 @@ Les Délégateurs jouent un rôle clé dans le maintien de la sécurité et de l - Les Délégateurs sélectionnent leurs Indexeurs selon divers critères, telles que les performances passées, les taux de récompense d'indexation et le partage des frais. - La réputation au sein de la communauté peut également jouer un rôle dans le processus de sélection. Il est recommandé d'entrer en contact avec les Indexeurs sélectionnés via le [Discord de The Graph](https://discord.gg/graphprotocol) ou le [Forum de The Graph] (https://forum.thegraph.com/). -![Image 7 de l'Explorer](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) Dans le tableau des Délégateurs, vous pouvez voir les Délégateurs actifs dans la communauté et les métriques importantes : @@ -127,9 +147,9 @@ Dans le tableau des Délégateurs, vous pouvez voir les Délégateurs actifs dan Si vous souhaitez en savoir plus sur la façon de devenir Déléguateur, consultez la [documentation officielle](/resources/roles/delegating/delegating/) ou [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Page de réseau +### Step 4. Analyze Network Performance -Sur cette page, vous pouvez voir les KPIs globaux et avoir la possibilité de passer à une base par époque et d'analyser les métriques du réseau plus en détail. Ces détails vous donneront une idée des performances du réseau au fil du temps. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Aperçu @@ -147,7 +167,7 @@ Quelques détails clés à noter : - **Les frais de requête représentent les frais générés par les consommateurs**. Ils peuvent être réclamés (ou non) par les Indexeurs après une période d'au moins 7 époques (voir ci-dessous) après que leurs allocations vers les subgraphs ont été clôturées et que les données qu'ils ont servies ont été validées par les consommateurs. - **Les récompenses d'indexation représentent le montant des récompenses que les Indexeurs ont réclamé de l'émission du réseau au cours de l'époque.** Bien que l'émission du protocole soit fixe, les récompenses ne sont mintées qu'une fois que les Indexeurs ont fermé leurs allocations vers les subgraphs qu'ils ont indexés. Ainsi, le nombre de récompenses par époque varie (par exemple, au cours de certaines époques, les Indexeurs peuvent avoir fermé collectivement des attributions qui étaient ouvertes depuis plusieurs jours). -![Image 8 de l'Explorer](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Époques @@ -161,69 +181,77 @@ Dans la section Époques, vous pouvez analyser, époque par époque, des métriq - Les époques de distribution sont les époques au cours desquelles les canaux d'État pour les époques sont réglés et les indexeurs peuvent réclamer leurs remises sur les frais de requête. - Les époques finalisées sont les époques qui n'ont plus de remboursements de frais de requête à réclamer par les Indexeurs. -![Image 9 de l'Explorer](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Votre profil d'utilisateur +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Votre profil personnel est l'endroit où vous pouvez voir votre activité sur le réseau, quel que soit votre rôle sur le réseau. Votre portefeuille crypto agira comme votre profil utilisateur, et avec le tableau de bord utilisateur, vous pourrez voir les onglets suivants : +### Step 2. Explore the Tabs -### Aperçu du profil +#### Aperçu du profil Dans cette section, vous pouvez voir ce qui suit : -- Toutes les actions en cours que vous avez effectuées. -- Les informations de votre profil, description et site web (si vous en avez ajouté un). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Image 10 de l'Explorer](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Onglet Subgraphs +#### Onglet Subgraphs -Dans l'onglet Subgraphs, vous verrez les subgraphs publiés. +The Subgraphs tab displays all your published Subgraphs. -> Cela n'inclut pas les subgraphs déployés avec la CLI à des fins de test. Les subgraphs n'apparaîtront que lorsqu'ils seront publiés sur le réseau décentralisé. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Image 11 de l'Explorer](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Onglet Indexation +#### Onglet Indexation -Dans l'onglet Indexation, vous trouverez un tableau avec toutes les allocations actives et historiques vers les subgraphs. Vous trouverez également des graphiques qui vous permettront de voir et d'analyser vos performances passées en tant qu'Indexeur. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Cette section comprendra également des détails sur vos récompenses nettes d'indexeur et vos frais de requête nets. Vous verrez les métriques suivantes : +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Participation déléguée - la participation des délégués qui peut être allouée par vous mais ne peut pas être réduite -- Total des frais de requête - le total des frais payés par les utilisateurs pour les requêtes que vous leur avez adressées au fil du temps -- Récompenses de l'indexeur - le montant total des récompenses de l'indexeur que vous avez reçues, en GRT -- Réduction des frais : % de remise sur les frais de requête que vous conserverez lors de votre séparation avec les délégués -- Récompenses de l'indexeur - le montant total des récompenses de l'indexeur que vous avez reçues, en GRT -- Possédé : votre mise déposée, qui pourrait être réduite en cas de comportement malveillant ou incorrect +Track your Indexer performance with visual charts and key metrics, including: -![Image 12 de l'Explorer](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Onglet Délégation +![Indexer Stats](/img/Indexer-Stats.png) -Les Délégateurs sont importants pour The Graph Network. Ils doivent utiliser leurs connaissances pour choisir un Indexeur qui fournira un bon rendement sur les récompenses. +#### Onglet Délégation -Dans l'onglet Délégateurs, vous pouvez trouver les détails de vos délégations actives et historiques, ainsi que les métriques des Indexeurs vers lesquels vous avez délégué. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -Dans la première moitié de la page, vous pouvez voir votre diagramme de délégation, ainsi que le diagramme des récompenses uniquement. À gauche, vous pouvez voir les indicateurs clés de performance qui reflètent vos paramètres de délégation actuels. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Les métriques du délégué que vous verrez ici dans cet onglet incluent : +Top Section: -- Récompenses totales de la délégation -- Récompenses totales non réalisées -- Récompenses totales réalisées +- View delegation and rewards-only charts +- Track key metrics: + - Récompenses totales de la délégation + - Unrealized rewards + - Realized Rewards -Dans la seconde moitié de la page, vous avez le tableau des délégations. Ici, vous pouvez voir les indexeurs auxquels vous avez délégué, ainsi que leurs détails (tels que les réductions de récompenses, le temps de recharge, etc.). +Bottom Section: -Les boutons situés à droite du tableau vous permettent de gérer votre délégation - déléguer davantage, dé-déléguer ou retirer votre délégation après la période de dégel. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Gardez à l'esprit que ce graph peut être parcouru horizontalement, donc si vous le faites défiler jusqu'à la droite, vous pouvez également voir le statut de votre délégation (en cours de délégation, non-déléguée, en cours de retrait). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Image 13 de l'Explorer](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Onglet Conservation +#### Onglet Conservation -Dans l'onglet Curation, vous trouverez tous les subgraphs que vous signalez (ce qui vous permet de recevoir des frais de requête). La signalisation permet aux Curateurs d'indiquer aux Indexeurs les subgraphs qui ont de la valeur et qui sont dignes de confiance, signalant ainsi qu'ils doivent être indexés. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Dans cet onglet, vous trouverez un aperçu de : @@ -232,22 +260,22 @@ Dans cet onglet, vous trouverez un aperçu de : - Récompenses pour les requêtes par subgraph - Détails mis à jour -![Image 14 de l'Explorer](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Paramètres de votre profil +#### Paramètres de votre profil Dans votre profil utilisateur, vous pourrez gérer les détails de votre profil personnel (comme la configuration d'un nom ENS). Si vous êtes un indexeur, vous avez encore plus accès aux paramètres à portée de main. Dans votre profil utilisateur, vous pourrez configurer vos paramètres et opérateurs de délégation. - Les opérateurs effectuent des actions limitées dans le protocole au nom de l'indexeur, telles que l'ouverture et la clôture des allocations. Les opérateurs sont généralement d'autres adresses Ethereum, distinctes de leur portefeuille de jalonnement, avec un accès sécurisé au réseau que les indexeurs peuvent définir personnellement - Les paramètres de délégation vous permettent de contrôler la répartition des GRT entre vous et vos délégués. -![Image 15 de l'Explorer](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) En tant que portail officiel dans le monde des données décentralisées, Graph Explorer vous permet de prendre diverses actions, quel que soit votre rôle dans le réseau. Vous pouvez accéder aux paramètres de votre profil en ouvrant le menu déroulant à côté de votre adresse, puis en cliquant sur le bouton Paramètres. ![détails du portefeuille](/img/Wallet-Details.png) -## Ressources supplémentaires +### Ressources supplémentaires ### Guide Vidéo From 6fc7461624f40b700322d5893ebc6aa35962b8aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:17 -0400 Subject: [PATCH 0139/1709] New translations explorer.mdx (Romanian) --- website/src/pages/ro/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ro/subgraphs/explorer.mdx b/website/src/pages/ro/subgraphs/explorer.mdx index 499fcede88d3..ddb6ad1b39b6 100644 --- a/website/src/pages/ro/subgraphs/explorer.mdx +++ b/website/src/pages/ro/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- View more details such as charts, current deployment ID, and other metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraph stats (allocations, Curators, etc) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - this is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - The number of GRT that was deposited - The number of shares a Curator owns -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - The distributing epochs are the epochs in which the state channels for the epochs are being settled and Indexers can claim their query fee rebates. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Your User Profile +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profile Overview +#### Profile Overview In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphs Tab +#### Subgraphs Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -This section will also include details about your net Indexer rewards and net query fees. You’ll see the following metrics: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - the stake from Delegators that can be allocated by you but cannot be slashed -- Total Query Fees - the total fees that users have paid for queries served by you over time -- Indexer Rewards - the total amount of Indexer rewards you have received, in GRT -- Fee Cut - the % of query fee rebates that you will keep when you split with Delegators -- Rewards Cut - the % of Indexer rewards that you will keep when splitting with Delegators -- Owned - your deposited stake, which could be slashed for malicious or incorrect behavior +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In the first half of the page, you can see your delegation chart, as well as the rewards-only chart. To the left, you can see the KPIs that reflect your current delegation metrics. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -The Delegator metrics you’ll see here in this tab include: +Top Section: -- Total delegation rewards -- Total unrealized rewards -- Total realized rewards +- View delegation and rewards-only charts +- Track key metrics: + - Total delegation rewards + - Unrealized rewards + - Realized Rewards -In the second half of the page, you have the delegations table. Here you can see the Indexers that you delegated towards, as well as their details (such as rewards cuts, cooldown, etc). +Bottom Section: -With the buttons on the right side of the table, you can manage your delegation - delegate more, undelegate, or withdraw your delegation after the thawing period. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Keep in mind that this chart is horizontally scrollable, so if you scroll all the way to the right, you can also see the status of your delegation (delegating, undelegating, withdrawable). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Within this tab, you’ll find an overview of: @@ -232,22 +260,22 @@ Within this tab, you’ll find an overview of: - Query rewards per Subgraph - Updated at date details -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Your Profile Settings +#### Your Profile Settings Within your user profile, you’ll be able to manage your personal profile details (like setting up an ENS name). If you’re an Indexer, you have even more access to settings at your fingertips. In your user profile, you’ll be able to set up your delegation parameters and operators. - Operators take limited actions in the protocol on the Indexer's behalf, such as opening and closing allocations. Operators are typically other Ethereum addresses, separate from their staking wallet, with gated access to the network that Indexers can personally set - Delegation parameters allow you to control the distribution of GRT between you and your Delegators. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From fda0ad5e71d3b5574e0ac3ce31e069d5f530a7b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:18 -0400 Subject: [PATCH 0140/1709] New translations explorer.mdx (Spanish) --- website/src/pages/es/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/es/subgraphs/explorer.mdx b/website/src/pages/es/subgraphs/explorer.mdx index e7d1980ac05d..07b1026ec356 100644 --- a/website/src/pages/es/subgraphs/explorer.mdx +++ b/website/src/pages/es/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Descripción -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Ver más detalles como gráficos, ID de implementación actual y otros metadatos -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Estadísticas de subgrafo (asignaciones, Curadores, etc.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexadores +#### Indexadores -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity: la cantidad máxima de participación delegada que el Indexador puede aceptar de forma productiva. Un exceso de participación delegada no puede utilizarse para asignaciones o cálculos de recompensas. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards: este es el total de recompensas del Indexador obtenidas por el Indexador y sus Delegadores durante todo el tiempo que trabajaron en conjunto. Las recompensas de los Indexadores se pagan mediante la emisión de GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curadores +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - El número de GRT que se depositaron - El número de participaciones que posee un Curador -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegadores +#### Delegadores Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Descripción @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Ciclos (epochs) @@ -161,69 +181,77 @@ En la sección de Epochs, puedes analizar, por cada epoch, métricas como: - Los ciclos de distribución son los ciclos en los que los canales correspondientes a los ciclos son establecidos y los Indexadores pueden reclamar sus reembolsos correspondientes a las tarifas de consulta. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Tu perfil de usuario +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Información general del perfil +#### Información general del perfil In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Pestaña de subgrafos +#### Pestaña de subgrafos -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Pestaña de indexación +#### Pestaña de indexación -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Esta sección también incluirá detalles sobre las recompensas netas que obtienes como Indexador y las tarifas netas que recibes por cada consulta. Verás las siguientes métricas: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake: la participación de los Delegados que puedes asignar pero que no se puede recortar -- Total Query Fees: las tarifas totales que los usuarios han pagado por las consultas que has atendido durante tu participación -- Indexer Rewards: la cantidad total de recompensas que el Indexador ha recibido, se valora en GRT -- Fee Cut: es el porcentaje que obtendrás por las consultas que has atendido, estos se distribuyen al cerrar un ciclo o cuando te separes de tus delegadores -- Rewards Cut: este es el porcentaje de recompensas que dividirás con tus delegadores una vez se cierre el ciclo -- Owned: tu stake depositado, que podría reducirse por un comportamiento malicioso o incorrecto en la red +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Pestaña de delegación +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Pestaña de delegación -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -En la primera mitad de la página, puedes ver tu gráfico de delegación, así como el gráfico de recompensas históricas. A la izquierda, puedes ver los KPI que reflejan tus métricas de delegación actuales. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Las métricas de Delegador que verás aquí en esta pestaña incluyen: +Top Section: -- Recompensas totales de delegación (Total delegation rewards) -- Recompensas totales no realizadas (Total unrealized rewards) -- Recompensas totales realizadas (Total realized rewards) +- View delegation and rewards-only charts +- Track key metrics: + - Recompensas totales de delegación (Total delegation rewards) + - Unrealized rewards + - Realized Rewards -En la segunda mitad de la página, tienes la tabla de delegaciones. Aquí puedes ver los Indexadores a los que delegaste, así como sus detalles (como recortes de recompensas, tiempo de enfriamiento, etc.). +Bottom Section: -Con los botones en el lado derecho de la tabla, puedes administrar tu delegación: delegar más, quitar tu delegación o retirar tu delegación después del período de descongelación. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Con los botones situados al lado derecho de la tabla, puedes administrar tu delegación: delegar más, anular la delegación actual o retirar tu delegación después del período de descongelación. +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Pestaña de curación +#### Pestaña de curación -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Dentro de esta pestaña, encontrarás una descripción general de: @@ -232,22 +260,22 @@ Dentro de esta pestaña, encontrarás una descripción general de: - Query rewards per Subgraph - Actualizaciones de los subgrafos -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Configuración de tu perfil +#### Configuración de tu perfil Dentro de tu perfil de usuario, podrás administrar los detalles de tu perfil personal (como configurar un nombre de ENS). Si eres un Indexador, tienes aún más acceso a la configuración al alcance de tu mano. En tu perfil de usuario, podrás configurar los parámetros y operadores de tu delegación. - Los operadores toman acciones limitadas en el protocolo en nombre del Indexador, como abrir y cerrar asignaciones. Los operadores suelen ser otras direcciones de Ethereum, separadas de su billetera de staking, con acceso cerrado a la red que los Indexadores pueden configurar personalmente - Los parámetros de delegación te permiten controlar la distribución de GRT entre tu y tus Delegadores. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Recursos Adicionales +### Recursos Adicionales ### Video Guide From aadcb1f105e9215e0ad7a9f07da58d65c1c32f9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:20 -0400 Subject: [PATCH 0141/1709] New translations explorer.mdx (Arabic) --- website/src/pages/ar/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ar/subgraphs/explorer.mdx b/website/src/pages/ar/subgraphs/explorer.mdx index 57d7712cc383..1f4add453b77 100644 --- a/website/src/pages/ar/subgraphs/explorer.mdx +++ b/website/src/pages/ar/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## نظره عامة -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- اعرض المزيد من التفاصيل مثل المخططات و ال ID الحالي وبيانات التعريف الأخرى -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - إحصائيات subgraphs (المخصصات ، المنسقين ، إلخ) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- مكافآت المفهرس Indexer Rewards - هو مجموع مكافآت المفهرس التي حصل عليها المفهرس ومفوضيهم Delegators. تدفع مكافآت المفهرس ب GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 3. المفوضون Delegators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - عدد ال GRT الذي تم إيداعه - عدد الأسهم التي يمتلكها المنسق -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. المفوضون Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### نظره عامة @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### الفترات Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - فترات التوزيع هي تلك الفترات التي يتم فيها تسوية قنوات الحالة للفترات ويمكن للمفهرسين المطالبة بخصم رسوم الاستعلام الخاصة بهم. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## ملف تعريف المستخدم الخاص بك +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### نظرة عامة على الملف الشخصي +#### نظرة عامة على الملف الشخصي In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### تبويب ال Subgraphs +#### تبويب ال Subgraphs -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### تبويب الفهرسة +#### تبويب الفهرسة -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -هذا القسم سيتضمن أيضا تفاصيل حول صافي مكافآت المفهرس ورسوم الاستعلام الصافي الخاصة بك. سترى المقاييس التالية: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- الحصة المفوضة Delegated Stake - هي الحصة المفوضة من قبل المفوضين والتي يمكنك تخصيصها ولكن لا يمكن شطبها -- إجمالي رسوم الاستعلام Total Query Fees - هو إجمالي الرسوم التي دفعها المستخدمون مقابل الاستعلامات التي قدمتها بمرور الوقت -- مكافآت المفهرس Indexer Rewards - هو المبلغ الإجمالي لمكافآت المفهرس التي تلقيتها ك GRT -- اقتطاع الرسوم Fee Cut -هي النسبة المئوية لخصوم رسوم الاستعلام التي ستحتفظ بها عند التقسيم مع المفوضين -- اقتطاع المكافآت Rewards Cut -هي النسبة المئوية لمكافآت المفهرس التي ستحتفظ بها عند التقسيم مع المفوضين -- مملوكة Owned - هي حصتك المودعة ، والتي يمكن شطبها بسبب السلوك الضار أو غير الصحيح +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### تبويب التفويض Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### تبويب التفويض Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -في النصف الأول من الصفحة ، يمكنك رؤية مخطط التفويض الخاص بك ، بالإضافة إلى مخطط المكافآت فقط. إلى اليسار ، يمكنك رؤية KPIs التي تعكس مقاييس التفويض الحالية. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -مقاييس التفويض التي ستراها هنا في علامة التبويب هذه تشمل ما يلي: +Top Section: -- إجمالي مكافآت التفويض -- إجمالي المكافآت الغير محققة -- إجمالي المكافآت المحققة +- View delegation and rewards-only charts +- Track key metrics: + - إجمالي مكافآت التفويض + - Unrealized rewards + - Realized Rewards -في النصف الثاني من الصفحة ، لديك جدول التفويضات. هنا يمكنك رؤية المفهرسين الذين فوضتهم ، بالإضافة إلى تفاصيلهم (مثل المكافآت المقتطعة rewards cuts، و cooldown ، الخ). +Bottom Section: -باستخدام الأزرار الموجودة على الجانب الأيمن من الجدول ، يمكنك إدارة التفويض - تفويض المزيد أو إلغاء التفويض أو سحب التفويض بعد فترة الإذابة. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -باستخدام الأزرار الموجودة على الجانب الأيمن من الجدول ، يمكنك إدارة تفويضاتك أو تفويض المزيد أو إلغاء التفويض أو سحب التفويض بعد فترة الذوبان thawing. +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### تبويب التنسيق Curating +#### تبويب التنسيق Curating -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. ضمن علامة التبويب هذه ، ستجد نظرة عامة حول: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - تحديث في تفاصيل التاريخ -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### إعدادات ملف التعريف الخاص بك +#### إعدادات ملف التعريف الخاص بك ضمن ملف تعريف المستخدم الخاص بك ، ستتمكن من إدارة تفاصيل ملفك الشخصي (مثل إعداد اسم ENS). إذا كنت مفهرسا ، فستستطيع الوصول إلى إعدادت أكثر. في ملف تعريف المستخدم الخاص بك ، ستتمكن من إعداد بارامترات التفويض والمشغلين. - Operators تتخذ إجراءات محدودة في البروتوكول نيابة عن المفهرس ، مثل عمليات فتح وإغلاق المخصصات. Operators هي عناوين Ethereum أخرى ، منفصلة عن محفظة staking الخاصة بهم ، مع بوابة وصول للشبكة التي يمكن للمفهرسين تعيينها بشكل شخصي - تسمح لك بارامترات التفويض بالتحكم في توزيع GRT بينك وبين المفوضين. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## مصادر إضافية +### مصادر إضافية ### Video Guide From 9c16612e403366cb2246fe12c77c515b9fa863c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:21 -0400 Subject: [PATCH 0142/1709] New translations explorer.mdx (Czech) --- website/src/pages/cs/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/cs/subgraphs/explorer.mdx b/website/src/pages/cs/subgraphs/explorer.mdx index 2d918567ee9d..ef576d74973a 100644 --- a/website/src/pages/cs/subgraphs/explorer.mdx +++ b/website/src/pages/cs/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Průzkumník grafů --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Přehled -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Zobrazit další podrobnosti, například grafy, ID aktuálního nasazení a další metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Statistiky podgrafů (alokace, kurátoři atd.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexery +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Maximální kapacita delegování - maximální množství delegovaných podílů, které může indexátor produktivně přijmout. Nadměrný delegovaný podíl nelze použít pro alokace nebo výpočty odměn. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Odměny indexátorů - jedná se o celkové odměny indexátorů, které indexátor a jeho delegáti získali za celou dobu. Odměny indexátorů jsou vypláceny prostřednictvím vydání GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Kurátoři +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - Počet uložených GRT - Počet akcií, které kurátor vlastní -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegáti +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Přehled @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ V části Epochy můžete na základě jednotlivých epoch analyzovat metriky, j - Distribuční epochy jsou epochy, ve kterých se vypořádávají státní kanály pro epochy a indexátoři si mohou nárokovat slevy z poplatků za dotazy. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Váš uživatelský profil +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Přehled profilů +#### Přehled profilů In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Tab Podgrafy +#### Tab Podgrafy -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Tab Indexování +#### Tab Indexování -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Tato část bude také obsahovat podrobnosti o vašich čistých odměnách za indexování a čistých poplatcích za dotazy. Zobrazí se následující metriky: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegovaná sázka – sázka od delegátů, kterou můžete přidělit vy, ale nelze ji snížit -- Celkové poplatky za dotazy - celkové poplatky, které uživatelé zaplatili za dotazy, které jste obsloužili v průběhu času -- Odměny indexátora - celková částka odměn indexátora, kterou jste obdrželi, v GRT -- Fee Cut - % slevy z poplatku za dotaz, které si ponecháte při rozdělení s delegáty -- Rozdělení odměn - % odměn indexátorů, které si ponecháte při dělení s delegáty -- Ve vlastnictví - váš vložený vklad, který může být snížen za škodlivé nebo nesprávné chování +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Tab Delegování +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Tab Delegování -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -V první polovině stránky vidíte graf delegování a také graf odměn. Vlevo vidíte klíčové ukazatele výkonnosti, které odrážejí vaše aktuální metriky delegování. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Metriky delegáta, které uvidíte na této tab, zahrnují: +Top Section: -- Celkové odměny za delegování -- Nerealizované odměny celkem -- Celkové realizované odměny +- View delegation and rewards-only charts +- Track key metrics: + - Celkové odměny za delegování + - Unrealized rewards + - Realized Rewards -V druhé polovině stránky je tabulka delegací. Zde vidíte indexátory, které jste delegovali, a také jejich podrobnosti (například snížení odměn, zkrácení doby platnosti atd.). +Bottom Section: -Pomocí tlačítek na pravé straně tabulky můžete spravovat delegování - delegovat více, zrušit delegování nebo stáhnout delegování po uplynutí doby rozmrazení. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Nezapomeňte, že tento graf lze horizontálně posouvat, takže pokud se posunete úplně doprava, uvidíte také stav svého delegování (delegování, nedelegování, odvolání). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Tab Kurátorství +#### Tab Kurátorství -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Na této tab najdete přehled: @@ -232,22 +260,22 @@ Na této tab najdete přehled: - Query rewards per Subgraph - Aktualizováno v detailu data -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Nastavení profilu +#### Nastavení profilu Ve svém uživatelském profilu budete moci spravovat své osobní údaje (například nastavit jméno ENS). Jste-li indexátorem, máte k dispozici ještě více nastavení. Ve svém uživatelském profilu budete moci nastavit parametry delegování a operátory. - Operátoři provádějí v protokolu jménem indexátoru omezené akce, například otevírají a zavírají alokace. Operátoři jsou obvykle jiné adresy Ethereum, oddělené od jejich stakingové peněženky, s uzavřeným přístupem do sítě, který si indexátoři mohou osobně nastavit - Parametry delegování umožňují řídit rozdělení GRT mezi vás a vaše delegáty. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Další zdroje +### Další zdroje ### Video Guide From 86dffb34251a8f4870d3be048ee7b1f616a865f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:22 -0400 Subject: [PATCH 0143/1709] New translations explorer.mdx (Italian) --- website/src/pages/it/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/it/subgraphs/explorer.mdx b/website/src/pages/it/subgraphs/explorer.mdx index 5db7212c1fb0..c249b659cdb3 100644 --- a/website/src/pages/it/subgraphs/explorer.mdx +++ b/website/src/pages/it/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Panoramica -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Visualizza ulteriori dettagli, come grafici, ID di distribuzione corrente e altri metadati -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Statistiche del subgraph (allocazione, Curator, ecc.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexer +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - l'importo massimo di stake delegato che l'Indexer può accettare in modo produttivo. Uno stake delegato in eccesso non può essere utilizzato per l'allocazione o per il calcolo dei premi. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - è il totale delle ricompense dell'Indexer guadagnate dall'Indexer e dai suoi Delegator in tutto il tempo. Le ricompense degli Indexer vengono pagate tramite l'emissione di GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curator +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - Il numero di GRT depositato - Il numero di azioni possedute da un Curator -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegator +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Panoramica @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epoche @@ -161,69 +181,77 @@ Nella sezione Epoche è possibile analizzare su base epocale metriche come: - Le epoche di distribuzione sono le epoche in cui i canali di stato per le epoche vengono regolati e gli Indexer possono richiedere gli sconti sulle tariffe di query. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Il profilo utente +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Panoramica del profilo +#### Panoramica del profilo In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Scheda di subgraph +#### Scheda di subgraph -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Scheda di indicizzazione +#### Scheda di indicizzazione -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Questa sezione include anche i dettagli sui compensi netti degli Indexer e sulle tariffe nette di query. Verranno visualizzate le seguenti metriche: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake (stake delegato)- lo stake dei Delegator che può essere assegnata dall'utente, ma che non può essere tagliata -- Total Query Fees (totale delle tariffe di query)- il totale delle tariffe che gli utenti hanno pagato per le query servite da voi nel tempo -- Indexer Rewards (ricompense dell'Indexer) - l'importo totale delle ricompense dell'Indexer ricevuti, in GRT -- Fee Cut (percentuale delle tariffe) - la percentuale dei rimborsi delle tariffe di query che si trattiene quando si divide con i Delegator -- Rewards Cut (percentuale delle ricompense) - la percentuale delle ricompense dell'Indexer che verrà trattenuta quando si divide con i Delegator -- Owned (di proprietà)- la quota depositata, che potrebbe essere tagliata in caso di comportamento dannoso o scorretto +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Scheda di delege +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Scheda di delege -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -Nella prima metà della pagina è possibile vedere il grafico delle deleghe e quello dei sole ricompense. A sinistra, si possono vedere i KPI che riflettono le metriche delle delega attuali. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Le metriche del Delegator visualizzate in questa scheda includono: +Top Section: -- Ricompense di delega totali -- Ricompense totali non realizzate -- Ricomepsne totali realizzate +- View delegation and rewards-only charts +- Track key metrics: + - Ricompense di delega totali + - Unrealized rewards + - Realized Rewards -Nella seconda metà della pagina si trova la tabella dei Delegator. Qui si possono vedere gli Indexer verso i quali si è delegata la delega, nonché i loro dettagli (come le percentuali delle ricompense, il cooldown, ecc.). +Bottom Section: -Con i pulsanti sul lato destro della tabella è possibile gestire la delega - delegare di più, non delegare o ritirare la delega dopo il periodo di scongelamento. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Tenete presente che questo grafico è scorrevole orizzontalmente, quindi se scorrete fino a destra, potete anche vedere lo stato della vostra delegazione (delegante, non delegante, revocabile). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Scheda di curation +#### Scheda di curation -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. All'interno di questa scheda è presente una panoramica di: @@ -232,22 +260,22 @@ All'interno di questa scheda è presente una panoramica di: - Query rewards per Subgraph - Aggiornamento attuale dei dettagli -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Impostazioni del profilo +#### Impostazioni del profilo All'interno del vostro profilo utente, potrete gestire i dettagli del vostro profilo personale (come impostare un nome ENS). Se siete un Indexer, avrete ancora più accesso alle impostazioni a portata di mano. Nel vostro profilo utente, potrete impostare i parametri di delegazione e gli operatori. - Gli operatori compiono azioni limitate nel protocollo per conto dell'Indexer, come l'apertura e la chiusura delle allocation. Gli operatori sono in genere altri indirizzi Ethereum, separati dal loro wallet di staking, con un accesso limitato alla rete che gli Indexer possono impostare personalmente - I parametri di delega vi permettono di controllare la distribuzione di GRT tra voi e i vostri Delegator. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From 49db5680707f1b8b0ce4e172aa876a3f7a9fa0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:23 -0400 Subject: [PATCH 0144/1709] New translations explorer.mdx (Korean) --- website/src/pages/ko/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ko/subgraphs/explorer.mdx b/website/src/pages/ko/subgraphs/explorer.mdx index 499fcede88d3..ddb6ad1b39b6 100644 --- a/website/src/pages/ko/subgraphs/explorer.mdx +++ b/website/src/pages/ko/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- View more details such as charts, current deployment ID, and other metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraph stats (allocations, Curators, etc) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - this is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - The number of GRT that was deposited - The number of shares a Curator owns -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - The distributing epochs are the epochs in which the state channels for the epochs are being settled and Indexers can claim their query fee rebates. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Your User Profile +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profile Overview +#### Profile Overview In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphs Tab +#### Subgraphs Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -This section will also include details about your net Indexer rewards and net query fees. You’ll see the following metrics: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - the stake from Delegators that can be allocated by you but cannot be slashed -- Total Query Fees - the total fees that users have paid for queries served by you over time -- Indexer Rewards - the total amount of Indexer rewards you have received, in GRT -- Fee Cut - the % of query fee rebates that you will keep when you split with Delegators -- Rewards Cut - the % of Indexer rewards that you will keep when splitting with Delegators -- Owned - your deposited stake, which could be slashed for malicious or incorrect behavior +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In the first half of the page, you can see your delegation chart, as well as the rewards-only chart. To the left, you can see the KPIs that reflect your current delegation metrics. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -The Delegator metrics you’ll see here in this tab include: +Top Section: -- Total delegation rewards -- Total unrealized rewards -- Total realized rewards +- View delegation and rewards-only charts +- Track key metrics: + - Total delegation rewards + - Unrealized rewards + - Realized Rewards -In the second half of the page, you have the delegations table. Here you can see the Indexers that you delegated towards, as well as their details (such as rewards cuts, cooldown, etc). +Bottom Section: -With the buttons on the right side of the table, you can manage your delegation - delegate more, undelegate, or withdraw your delegation after the thawing period. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Keep in mind that this chart is horizontally scrollable, so if you scroll all the way to the right, you can also see the status of your delegation (delegating, undelegating, withdrawable). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Within this tab, you’ll find an overview of: @@ -232,22 +260,22 @@ Within this tab, you’ll find an overview of: - Query rewards per Subgraph - Updated at date details -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Your Profile Settings +#### Your Profile Settings Within your user profile, you’ll be able to manage your personal profile details (like setting up an ENS name). If you’re an Indexer, you have even more access to settings at your fingertips. In your user profile, you’ll be able to set up your delegation parameters and operators. - Operators take limited actions in the protocol on the Indexer's behalf, such as opening and closing allocations. Operators are typically other Ethereum addresses, separate from their staking wallet, with gated access to the network that Indexers can personally set - Delegation parameters allow you to control the distribution of GRT between you and your Delegators. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From fbb1e25f1e38a38b70129b680b0a3998de72a348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:24 -0400 Subject: [PATCH 0145/1709] New translations explorer.mdx (Dutch) --- website/src/pages/nl/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/nl/subgraphs/explorer.mdx b/website/src/pages/nl/subgraphs/explorer.mdx index 3df0b99d43ca..9a0c6aa80167 100644 --- a/website/src/pages/nl/subgraphs/explorer.mdx +++ b/website/src/pages/nl/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Verkenner --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Details zoals grafieken, huidige implementatie-ID en andere metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraphstatistieken (allocaties, curatoren, etc.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - het maximale bedrag aan gedelegeerde inzet dat de Indexer productief kan accepteren. Een teveel aan gedelegeerde inzet kan niet worden gebruikt voor allocaties of beloningsberekeningen. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - dit zijn de totale indexerbeloningen die door de Indexer en hun Delegeerders zijn verdiend. Indexerbeloningen worden uitbetaald via de uitgifte van GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curatoren +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - Het gestorte aantal GRT - Het aantal curator-aandelen in het bezit van de curator -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In de Epochs afdeling kun je per epoch verschillende metrieken analyseren, zoals - De distribuerende epochs zijn de epochs waarin de state channels voor de epochs worden afgehandeld en Indexeerders hun querykostenkorting kunnen claimen. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Uw Gebruikersprofiel +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profieloverzicht +#### Profieloverzicht In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraph Tab +#### Subgraph Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Dit gedeelte bevat ook details over uw netto indexeringsbeloningen en netto querykosten. U zult de volgende metrics zien: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Gedelegeerde GRT - de GRT van Delegators die door u kan worden toegewezen, maar die niet kan worden geslashed -- Totale Querykosten - de totale kosten die door gebruikers in de loop van de tijd hebben betaald voor queries die door u zijn verwerkt -- Indexer-beloningen - het totale bedrag aan Indexer-beloningen dat u heeft ontvangen, in GRT -- Fee Cut - het percentage van de query fee rebates dat u houdt wanneer u het splitst met Delegators -- Reward Cut - het % van Indexer-beloningen dat u houdt bij het splitsen met Delegators -- Owned - jouw eigen gestorte inzet, die kan worden geslashed voor kwaadaardig of incorrect gedrag +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In de eerste helft van de pagina kunt u uw delegatiegrafiek zien, evenals de alleen-beloningen-grafiek. Aan de linkerkant kun u de KPI's zien die uw huidige delegatiemetrics weerspiegelen. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -De Delegator-metrieken die u hier in deze tab zult zien, omvatten: +Top Section: -- Totale delegatiebeloningen -- Totale niet-gerealiseerde beloningen -- Totaal gerealiseerde beloningen +- View delegation and rewards-only charts +- Track key metrics: + - Totale delegatiebeloningen + - Unrealized rewards + - Realized Rewards -In de tweede helft van de pagina heeft u de delegatietabel. Hier kunt u de Indexeerders zien waarnaar u hebt gedelegeerd, evenals hun parameters (zoals beloningsverlagingen, afkoelperiode, enz.). +Bottom Section: -Met de knoppen aan de rechterkant van de tabel kunt u uw delegatie beheren - meer delegeren, stoppen met delegeren of uw delegatie opnemen na de ontdooiperiode. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Houd er rekening mee dat deze grafiek horizontaal scrollbaar is, dus als u helemaal naar rechts scrolt, kunt u ook de status van uw delegatie zien (delegeren, ontdooien, opneembaar). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Binnen deze tab vind je een overzicht van: @@ -232,22 +260,22 @@ Binnen deze tab vind je een overzicht van: - Query rewards per Subgraph - Gegevens van de bijwerkdatum -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Jouw profielinstellingen +#### Jouw profielinstellingen Binnen je gebruikersprofiel kun je je persoonlijke profielgegevens beheren (zoals het instellen van een ENS-naam). Als je een Indexeerder bent, heb je nog meer toegang tot instellingen binnen handbereik. In je gebruikersprofiel kun je je delegatieparameters en operators instellen. - Operators nemen beperkte acties in het protocol namens de Indexer, zoals het openen en sluiten van allocaties. Operators zijn doorgaans andere Ethereum-adressen, los van hun wallet die inzet, met beperkte toegang tot het netwerk die Indexeerders persoonlijk kunnen instellen - Delegatieparameters stellen je in staat om de verdeling van GRT tussen jou en je Delegators te regelen. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From 4b03c094853b83831546499afd85b930ae049cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:26 -0400 Subject: [PATCH 0146/1709] New translations explorer.mdx (Polish) --- website/src/pages/pl/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/pl/subgraphs/explorer.mdx b/website/src/pages/pl/subgraphs/explorer.mdx index 499fcede88d3..ddb6ad1b39b6 100644 --- a/website/src/pages/pl/subgraphs/explorer.mdx +++ b/website/src/pages/pl/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- View more details such as charts, current deployment ID, and other metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraph stats (allocations, Curators, etc) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - this is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - The number of GRT that was deposited - The number of shares a Curator owns -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - The distributing epochs are the epochs in which the state channels for the epochs are being settled and Indexers can claim their query fee rebates. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Your User Profile +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profile Overview +#### Profile Overview In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphs Tab +#### Subgraphs Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -This section will also include details about your net Indexer rewards and net query fees. You’ll see the following metrics: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - the stake from Delegators that can be allocated by you but cannot be slashed -- Total Query Fees - the total fees that users have paid for queries served by you over time -- Indexer Rewards - the total amount of Indexer rewards you have received, in GRT -- Fee Cut - the % of query fee rebates that you will keep when you split with Delegators -- Rewards Cut - the % of Indexer rewards that you will keep when splitting with Delegators -- Owned - your deposited stake, which could be slashed for malicious or incorrect behavior +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In the first half of the page, you can see your delegation chart, as well as the rewards-only chart. To the left, you can see the KPIs that reflect your current delegation metrics. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -The Delegator metrics you’ll see here in this tab include: +Top Section: -- Total delegation rewards -- Total unrealized rewards -- Total realized rewards +- View delegation and rewards-only charts +- Track key metrics: + - Total delegation rewards + - Unrealized rewards + - Realized Rewards -In the second half of the page, you have the delegations table. Here you can see the Indexers that you delegated towards, as well as their details (such as rewards cuts, cooldown, etc). +Bottom Section: -With the buttons on the right side of the table, you can manage your delegation - delegate more, undelegate, or withdraw your delegation after the thawing period. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Keep in mind that this chart is horizontally scrollable, so if you scroll all the way to the right, you can also see the status of your delegation (delegating, undelegating, withdrawable). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Within this tab, you’ll find an overview of: @@ -232,22 +260,22 @@ Within this tab, you’ll find an overview of: - Query rewards per Subgraph - Updated at date details -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Your Profile Settings +#### Your Profile Settings Within your user profile, you’ll be able to manage your personal profile details (like setting up an ENS name). If you’re an Indexer, you have even more access to settings at your fingertips. In your user profile, you’ll be able to set up your delegation parameters and operators. - Operators take limited actions in the protocol on the Indexer's behalf, such as opening and closing allocations. Operators are typically other Ethereum addresses, separate from their staking wallet, with gated access to the network that Indexers can personally set - Delegation parameters allow you to control the distribution of GRT between you and your Delegators. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From f6383961d077a79ce42dad0e7fbe93a54186f8c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:27 -0400 Subject: [PATCH 0147/1709] New translations explorer.mdx (Swedish) --- website/src/pages/sv/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/sv/subgraphs/explorer.mdx b/website/src/pages/sv/subgraphs/explorer.mdx index 87b670a3247d..c22e0a0ec72b 100644 --- a/website/src/pages/sv/subgraphs/explorer.mdx +++ b/website/src/pages/sv/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graf Utforskaren --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Översikt -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Visa mer detaljer som diagram, aktuell distributions-ID och annan metadata -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraffstatistik (tilldelningar, kuratorer, etc.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexerare +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Maximal delegeringskapacitet - den maximala mängden delegerad insats som indexeraren produktivt kan acceptera. Överskjuten delegerad insats kan inte användas för tilldelningar eller beräkningar av belöningar. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexeringsbelöningar - detta är de totala indexeringsbelöningarna som indexeraren och deras delegater har tjänat över tid. Indexeringsbelöningar betalas genom GRT-utgivning. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Kuratorer +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - Antalet GRT som deponerades - Antalet andelar en kurator äger -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegater +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Översikt @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epoker @@ -161,69 +181,77 @@ I avsnittet Epoker kan du analysera på en per-epok-basis, metriker som: - De distribuerande epokerna är de epoker där statliga kanaler för epokerna avvecklas och indexerare kan kräva sina frågeavgiftsrabatter. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Din användarprofil +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profilöversikt +#### Profilöversikt In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraffar-fliken +#### Subgraffar-fliken -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexeringstabell +#### Indexeringstabell -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -I det här avsnittet hittar du också information om dina nettobelöningar som indexerare och nettovärdaravgifter. Du kommer att se följande metriker: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegerad insats - insatsen från delegater som kan tilldelas av dig men inte kan straffas -- Totala frågeavgifter - de totala avgifter som användare har betalat för frågor som du har serverat över tid -- Indexeringsbelöningar - den totala mängd indexeringsbelöningar du har fått, i GRT -- Avgiftsskärning - den procentandel av frågeavgiftsrabatter som du kommer att behålla när du delar med delegater -- Belöningsrabatt - den procentandel av indexeringsbelöningar som du kommer att behålla när du delar med delegater -- Ägd - din deponerade insats, som kan straffas för skadligt eller felaktigt beteende +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegattabell +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegattabell -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -I den första halvan av sidan kan du se din delegatdiagram, liksom diagrammet för endast belöningar. Till vänster kan du se KPI:er som återspeglar dina aktuella delegationsmetriker. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -De delegatmetriker du kommer att se här i den här fliken inkluderar: +Top Section: -- Totala delegationsbelöningar -- Totala orealiserade belöningar -- Totala realiserade belöningar +- View delegation and rewards-only charts +- Track key metrics: + - Totala delegationsbelöningar + - Unrealized rewards + - Realized Rewards -I den andra halvan av sidan har du delegattabellen. Här kan du se indexerarna som du har delegerat till, samt deras detaljer (som belönningsskärningar, nedkylning, etc). +Bottom Section: -Med knapparna på höger sida av tabellen kan du hantera din delegation - delegera mer, avdelegatera eller ta tillbaka din delegation efter upptiningstiden. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Kom ihåg att denna tabell kan rullas horisontellt, så om du rullar hela vägen till höger kan du också se status för din delegation (delegering, avdelegering, återkallelig). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Kureringstabell +#### Kureringstabell -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Inom den här fliken hittar du en översikt över: @@ -232,22 +260,22 @@ Inom den här fliken hittar du en översikt över: - Query rewards per Subgraph - Uppdaterade datumdetaljer -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Dina profilinställningar +#### Dina profilinställningar Inom din användarprofil kommer du att kunna hantera dina personliga profiluppgifter (som att ställa in ett ENS-namn). Om du är indexerare har du ännu mer åtkomst till inställningar inom räckhåll. I din användarprofil kan du ställa in dina delegationsparametrar och operatörer. - Operatörer tar begränsade åtgärder i protokollet på indexerarens vägnar, såsom att öppna och stänga tilldelningar. Operatörer är vanligtvis andra Ethereum-adresser, separata från deras stakningsplånbok, med gated access till nätverket som indexerare personligen kan ställa in - Delegationsparametrar låter dig kontrollera fördelningen av GRT mellan dig och dina delegater. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Ytterligare resurser +### Ytterligare resurser ### Video Guide From d1dcd3798ee1a21fbd742f7f38f1449888a3a2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:28 -0400 Subject: [PATCH 0148/1709] New translations explorer.mdx (Turkish) --- website/src/pages/tr/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/tr/subgraphs/explorer.mdx b/website/src/pages/tr/subgraphs/explorer.mdx index 95128bd87f9e..419065d423a5 100644 --- a/website/src/pages/tr/subgraphs/explorer.mdx +++ b/website/src/pages/tr/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Gezgini --- -[Graph Gezgini](https://thegraph.com/explorer) ile Subgraph'ler ve ağ verilerinin dünyasını keşfedin. +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Genel Bakış -Graph Gezgini, birden fazla bölümden oluşur; bu bölümlerde [Subgraph'ler](https://thegraph.com/explorer?chain=arbitrum-one) ile etkileşime geçebilir, [delege etme](https://thegraph.com/explorer/delegate?chain=arbitrum-one) işlemi yapabilir, [katılımcılarla](https://thegraph.com/explorer/participants?chain=arbitrum-one) etkileşime geçebilir, [ağ bilgilerini](https://thegraph.com/explorer/network?chain=arbitrum-one) görüntüleyebilir ve kullanıcı profilinize erişebilirsiniz. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Graph Gezgini'nin İçinde +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -Aşağıda, Graph Gezgini'nin tüm temel özelliklerinin bir dökümü yer almaktadır. Ek destek için [Graph Gezgini video rehberini](/subgraphs/explorer/#video-guide) izleyebilirsiniz. +## Prerequisites -### Subgraph Sayfası +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -Subgraph'inizi Subgraph Studio'da dağıtıp yayımladıktan sonra [Graph Gezgini](https://thegraph.com/explorer) sayfasına gidin ve gezinme çubuğundaki "[Subgraph'lar](https://thegraph.com/explorer?chain=arbitrum-one)" bağlantısına tıklayarak aşağıdaki bölümlere erişin: +## Navigating Graph Explorer -- Kendi tamamlanmış Subgraph'leriniz -- Başkaları tarafından yayımlanmış subgraph'ler -- İstediğiniz spesifik bir subgraph (oluşturulma tarihi, sinyal miktarı veya adına göre). +### Step 1. Explore Subgraphs -![Gezgin Görüntüsü 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -Bir Subgraph'e tıkladığınızda aşağıdakileri yapabilirsiniz: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Oyun alanında (playground) sorguları test edin ve ağ detaylarından faydalanarak bilgili kararlar alın. -- Kendi Subgraph'inize veya başkalarının Subgraph'lerine GRT sinyali göndererek Endeksleyicilere bunların önemini ve kalitesini bildirin. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - Bu kritik bir öneme sahiptir çünkü bir Subgraph'e sinyal vermek, onun endekslenmesini teşvik eder. Bu da, sonunda ağ üzerinde ön plana çıkıp sorgulara hizmet verebileceği anlamına gelir. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Gezgin Görüntüsü 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Oyun alanında (playground) sorguları test edin ve ağ detaylarından faydalanarak bilgili kararlar alın. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) Her Subgraph'in kendi sayfasında aşağıdakileri yapabilirsiniz: -- Subgraph'lere sinyal verme/sinyal geri çekme -- Grafikler, mevcut dağıtım kimliği ve diğer üst veri gibi daha fazla ayrıntı görüntüleme -- Subgraph'in önceki sürümlerini incelemek için versiyonlar arasında geçiş yapma - Subgraph'leri GraphQL ile sorgulama +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Subgraph'leri playground ortamında test etme - Belirli bir Subgraph üzerinde endeksleme yapan Endeksleyicileri görüntüleme - Subgraph istatistikleri (tahsisler, Küratörler, vb.) -- Subgraph'i yayımlayan varlığı görüntüleme +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Gezgin Görüntüsü 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delege Etme Sayfası +### Step 2. Delegate GRT -[Delege Etme sayfasında](https://thegraph.com/explorer/delegate?chain=arbitrum-one), delege etme, GRT edinme ve bir Endeksleyici seçme hakkında bilgi bulabilirsiniz. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -Bu sayfada aşağıdakileri görüntüleyebilirsiniz: +Here, you can: -- En fazla sorgu ücretini toplayan Endeksleyiciler -- Tahmini APR'si (Yıllık Yüzde Getiri Oranı) en yüksek olan Endeksleyiciler +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Ayrıca, ROI (Yatırım Getirisi) hesaplayabilir ve öne çıkan Endeksleyicileri ada, adrese ya da Subgraph’e göre arayabilirsiniz. +### Step 3. Monitor Participants in the Network -### Katılımcı Sayfası +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -Bu sayfa, Endeksleyiciler, Delegatörler ve Küratörler gibi ağda yer alan tüm "katılımcıları" kapsayan genel bir görüntü sunar. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. İndeksleyiciler +#### Endeksleyiciler -![Gezgin Görüntüsü 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Endeksleyiciler, protokolün bel kemiğidir. Subgraph'ler üzerinde istifleme yapar, onları endeksler ve Subgraph'leri tüketen herkese sorgular sunarlar. -Endeksleyiciler tablosunda, bir Endeksleyicinin delegasyon parametrelerini, istif miktarını, her bir Subgraph'e ne kadar istifleme yaptığını ve sorgu ücretleri ile endeksleme ödüllerinden ne kadar gelir elde ettiğini görebilirsiniz. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Ayrıntılar** -- Sorgu Ücreti Kesintisi - Endeksleyicinin, Delegatörlerle paylaşırken sorgu ücreti iadelerinden kendine ayırdığı yüzdelik oran. -- Etkin Ödül Kesintisi - Delegasyon havuzuna uygulanan endeksleme ödülü kesintisi. Negatif bir değer, Endeksleyicinin kendi ödüllerinin bir kısmını dağıttığı anlamına gelir. Pozitif bir değer ise Endeksleyicinin ödüllerin bir kısmını kendine sakladığını gösterir. -- Kalan Bekleme Süresi - Endeksleyicinin yukarıdaki delegasyon parametrelerini değiştirebilmesi için kalan süre. Bekleme süreleri, Endeksleyiciler delegasyon parametrelerini güncellediğinde kendileri tarafından ayarlanır. -- Sahip Olunan - Endeksleyicinin yatırdığı istif miktarıdır ve kötü niyetli veya hatalı davranışlar nedeniyle kesinti (slashing) uygulanabilir. -- Delege Edilen - Delegatörlerden gelen ve Endeksleyici tarafından tahsis edilebilen, ancak kesintiye uğratılamayan istif. -- Tahsis Edilen - Endeksleyicilerin, endeksledikleri Subgraph'lere aktif olarak tahsis ettikleri istif. -- Mevcut Delegasyon Kapasitesi - Endeksleyicilerin kotalarını aşmadan önce alabilecekleri delege edilmiş istif miktarı. -- Maksimum Delegasyon Kapasitesi - Endekserin verimli bir şekilde kabul edebileceği en yüksek delegasyon miktarıdır. Fazla delege edilmiş pay, tahsisler veya ödül hesaplamaları için kullanılamaz. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- İndeksleyici Ödülleri - bu, İndeksleyici ve Delegatörler tarafından tüm zaman boyunca kazanılan toplam indeksleyici ödülleridir. İndeksleyici ödülleri GRT ihracı yoluyla ödenir. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe Nasıl Endeksleyici olunabileceğini daha ayrıntılı öğrenmek için [resmi dokümantasyona](/indexing/overview/) veya [The Graph Academy Endeksleyici rehberlerine](https://thegraph.academy/delegators/choosing-indexers/) göz atabilirsiniz. -![Endeksleme detayları paneli](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Küratörler +#### Curators Küratörler, Subgraph'leri analiz ederek en yüksek kaliteye sahip olan Subgraph'leri belirler. Bir Küratör, potansiyel olarak yüksek kaliteli bir Subgraph bulduğunda, onun bağlanma eğrisine sinyal vererek küratörlük yapabilir. Küratörler böylece Endeksleyicilere hangi Subgraph'lerin yüksek kaliteli olduğunu ve hangilerinin endekslenmesi gerektiğini bildirir. @@ -102,11 +122,11 @@ Aşağıda listelenen Küratör tablosunda şunları görebilirsiniz: - Yatırılan GRT sayısı - Küratör'ün sahip olduğu hisse sayısı -![Gezgin Görüntüsü 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) Küratör rolü hakkında daha fazla bilgi edinmek isterseniz, [resmi dokümentasyon](/resources/roles/curating/)u veya [The Graph Academy](https://thegraph.academy/curators/)'yi ziyaret edebilirsiniz. -#### 3. Delegatörler +#### Delegatörler Delegatörler, The Graph Ağı'nın güvenliğinin ve merkeziyetsizliğinin korunmasında kilit bir rol oynar. Ağda, bir veya birden fazla Endeksleyiciye GRT token'larını delege ederek (yani istifleyerek, "stake" ederek) katılım sağlarlar. @@ -114,7 +134,7 @@ Delegatörler, The Graph Ağı'nın güvenliğinin ve merkeziyetsizliğinin koru - Delegatörler, geçmiş performans, endeksleme ödül oranları ve sorgu ücreti kesintileri gibi çeşitli değişkenlere dayanarak Endeksleyicileri seçerler. - Topluluk içindeki itibar da seçim sürecinde bir faktör olabilir. Seçtiğiniz Endeksleyicilerle [The Graph’in Discord sunucusu](https://discord.gg/graphprotocol) veya [The Graph Forumu](https://forum.thegraph.com/) üzerinden bağlantı kurmanız önerilir. -![Gezgin Görüntüsü 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) Delegatörler tablosunda, topluluktaki aktif Delegatörleri ve önemli metrikleri görebilirsiniz: @@ -127,9 +147,9 @@ Delegatörler tablosunda, topluluktaki aktif Delegatörleri ve önemli metrikler Delegatör olmak hakkında daha fazla bilgi edinmek isterseniz, [resmi dokümantasyon](/resources/roles/delegating/delegating/)u veya [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers)'yi ziyaret edebilirsiniz. -### Ağ Sayfası +### Step 4. Analyze Network Performance -Bu sayfada, küresel TPG'leri (temel performans göstergesi, İng. KPI) görüntüleyebilir, dönem bazlı görünüme geçiş yaparak ağ metriklerini daha ayrıntılı şekilde analiz edebilirsiniz. Bu detaylar, ağın zaman içindeki performansı hakkında bir fikir edinmenizi sağlar. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Genel Bakış @@ -147,7 +167,7 @@ Dikkat edilmesi gereken birkaç önemli detay: - **Sorgu ücretleri, tüketiciler tarafından üretilen ücretleri temsil eder**. Bu ücretler, Endeksleyiciler tarafından Subgraph'lere yönelik tahsislerin kapatılmasından ve sağlanan verilerin tüketiciler tarafından doğrulanmasından sonra, en az 7 dönemlik (aşağıya bakınız) bir sürenin ardından talep edilebilir (veya edilmeyebilir). - **Endeksleme ödülleri, Endeksleyicilerin dönem sırasında ağ ihraçlarından talep ettiği ödül miktarını temsil eder**. Protokol ihraç miktarı sabit olmasına rağmen, ödüller yalnızca Endeksleyicilerin endeksledikleri Subgraph'lere yönelik tahsislerini kapattıklarında oluşturulur. Bu nedenle, dönem başına ödül miktarı değişkenlik gösterir (örneğin, bazı dönemlerde Endeksleyiciler, günlerce açık kalmış tahsisleri topluca kapatmış olabilir). -![Gezgin Görüntüsü 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Dönemler @@ -161,69 +181,77 @@ Dönemler bölümünde, aşağıdaki gibi metrikleri dönem bazında analiz edeb - Dağıtım dönemleri, bildirim kanallarının dönemler için yerleştiği ve İndeksleyicilerin sorgu ücreti iadelerini talep edebildiği dönemlerdir. - Sonlandırılmış dönemler, Endeksleyiciler tarafından talep edilecek sorgu ücreti iadelerinin kalmadığı dönemlerdir. -![Gezgin Görüntüsü 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Kullanıcı Profiliniz +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Kişisel profiliniz, ağdaki rolünüz ne olursa olsun ağ etkinliğinizi görebileceğiniz yerdir. Kripto cüzdanınız kullanıcı profiliniz olarak işlev görecektir ve Kullanıcı Panosu ile aşağıdaki sekmeleri görüntüleyebileceksiniz: +### Step 2. Explore the Tabs -### Profile Genel Bakış +#### Profile Genel Bakış Bu bölümde aşağıdakileri görüntüleyebilirsiniz: -- Yaptığınız mevcut tüm işlemleriniz. -- Profil bilgileriniz, tanımınız ve (varsa) eklediğiniz web sitesi. +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Gezgin Görüntüsü 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphlar Sekmesi +#### Subgraphlar Sekmesi -Subgraph'ler sekmesinde, yayımladığınız Subgraph'leri göreceksiniz. +The Subgraphs tab displays all your published Subgraphs. -> Bu, test amaçlı, CLI ile dağıtılmış Subgraph'leri içermeyecektir. Subgraph'ler yalnızca merkeziyetsiz ağda yayımlandıklarında görünecektir. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Gezgin Görüntüsü 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### İndeksleme Sekmesi +#### İndeksleme Sekmesi -Endeksleme sekmesinde, Subgraph'lere yönelik tüm aktif ve geçmiş tahsislerin yer aldığı bir tablo bulacaksınız. Ayrıca, bir Endeksleyici olarak geçmiş performansınızı görebileceğiniz ve analiz edebileceğiniz grafiklere erişebilirsiniz. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Bu bölümde ayrıca net İndeksleyici ödülleriniz ve sorgu ücretlerinizle ilgili ayrıntılar da yer alacaktır. Aşağıdaki metrikleri göreceksiniz: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delege Edilen Pay - delegatörler'in sizin tarafınızdan tahsis edilebilen fakat kesilemeyen payları -- Toplam Sorgu Ücretleri - kullanıcıların zaman içinde sizin tarafınızdan sunulan sorgular için ödedikleri toplam ücretler -- İndeksleyici Ödülleri - GRT olarak aldığınız İndeksleyici ödüllerinin toplam tutarı -- Ücret Kesintisi - Delegatörlerle ayrıldığınızda elinizde kalacak sorgu ücreti iadelerinin yüzdesi -- Ödül Kesintisi - Delegatörlerle ayrılırken İndeksleyici ödüllerinin elinizde kalacak yüzdesi -- Depozito - kötü niyetli veya yanlış davranışlarınız sonucu kesilebilecek yatırılmış payınız +Track your Indexer performance with visual charts and key metrics, including: -![Gezgin Görüntüsü 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegasyon Sekmesi +![Indexer Stats](/img/Indexer-Stats.png) -Delegatörler, Graph Ağı için önemlidir. Sağlıklı bir ödül getirisi sağlayacak bir Endeksleyiciyi seçmek için bilgilerini kullanmaları gerekir. +#### Delegasyon Sekmesi -Delegatörler sekmesinde, aktif ve geçmiş delege işlemlerinizin detaylarını ve delege ettiğiniz Endeksleyicilerin metriklerini bulabilirsiniz. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -Sayfanın ilk yarısında, delegasyon grafiğinizin yanı sıra yalnızca ödül grafiğini de görebilirsiniz. Sol tarafta, mevcut delegasyon metriklerinizi yansıtan APG'leri görebilirsiniz. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Bu sekmede göreceğiniz Delegatör metrikleri şunları içermektedir: +Top Section: -- Toplam delegasyon ödülleri -- Toplam gerçekleşmemiş ödüller -- Toplam gerçekleşmiş ödüller +- View delegation and rewards-only charts +- Track key metrics: + - Toplam delegasyon ödülleri + - Unrealized rewards + - Realized Rewards -Sayfanın ikinci yarısında delegasyonlar tablosu yer alır. Burada delege ettiğiniz İndeksleyicileri ve ayrıntılarını (ödül kesintileri, bekleme süreleri vb.) görebilirsiniz. +Bottom Section: -Tablonun sağ tarafındaki düğmelerle delegasyonunuzu yönetebilirsiniz - daha fazla delege edebilir, delegasyonunuzu geri alabilir veya serbest kalma döneminden sonra delegasyonunuzu geri çekebilirsiniz. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Bu grafiğin yatay olarak kaydırılabilir olduğunu unutmayın, bu nedenle sağa doğru kaydırırsanız, delegasyonunuzun durumunu da görebilirsiniz (delege edilen, delegeden çıkarılan, geri çekilebilir). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Gezgin Görüntüsü 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Kürasyon Sekmesi +#### Kürasyon Sekmesi -Kürasyon sekmesinde, sinyal verdiğiniz (ve böylece sorgu ücretleri alabileceğiniz) tüm Subgraph'leri bulabilirsiniz. Sinyal vermek, Küratörlerin Endeksleyicilere hangi Subgraph'lerin değerli ve güvenilir olduğunu vurgulamasına olanak tanır, ve böylece bu Subgraph'lerin endekslenmesi gerektiğini belirtir. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Bu sekmede, aşağıdakilerin genel bir bakışını bulacaksınız: @@ -232,22 +260,22 @@ Bu sekmede, aşağıdakilerin genel bir bakışını bulacaksınız: - Her bir Subgraph için sorgu ödülleri - Güncelleme tarih detayları -![Gezgin Görüntüsü 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Profil Ayarlarınız +#### Profil Ayarlarınız Kullanıcı profilinizde, kişisel profil ayrıntılarınızı yönetebileceksiniz (bir ENS adı almak gibi). Eğer bir İndeksleyiciyseniz, daha fazla ayara erişiminiz olacaktır. Kullanıcı profilinizde, delegasyon parametrelerinizi ve operatörlerinizi ayarlayabileceksiniz. - Operatörler, İndeksleyici adına protokolde tahsislerin açılması ve kapatılması gibi sınırlı işlemlerde bulunur. Operatörler tipik olarak, stake cüzdanlarından ayrı, İndeksleyicilerin kişisel olarak ayarlayabileceği ağa kontrollü bir şekilde erişime sahip diğer Ethereum adresleridir - Delegasyon parametreleri, GRT'nin siz ve Delegatörleriniz arasındaki dağılımını kontrol etmenizi sağlar. -![Gezgin Görüntüsü 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) Graph Gezgini, merkeziyetsiz veri dünyasına açılan asıl portalınız olarak, ağdaki rolünüz ne olursa olsun birçok işlem yapmanıza olanak tanır. Profil ayarlarınıza, adresinizin yanındaki açılır menüyü açarak ve Ayarlar düğmesine tıklayarak erişebilirsiniz. ![Cüzdan detayları](/img/Wallet-Details.png) -## Ek Kaynaklar +### Ek Kaynaklar ### Video Kılavuzu From ceae5c83c96cd580ad618f1397b5e635e0f89e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:29 -0400 Subject: [PATCH 0149/1709] New translations explorer.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/uk/subgraphs/explorer.mdx b/website/src/pages/uk/subgraphs/explorer.mdx index fd1259ea78b1..abb1e5db192b 100644 --- a/website/src/pages/uk/subgraphs/explorer.mdx +++ b/website/src/pages/uk/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Перегляд додаткових відомостей, таких як діаграми, поточний ID розгортання та інші ключові параметри -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Статистика підграфів (розподіл коштів, куратори тощо) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Індексатори +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Indexer Rewards - this is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - The number of GRT that was deposited - The number of shares a Curator owns -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - The distributing epochs are the epochs in which the state channels for the epochs are being settled and Indexers can claim their query fee rebates. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Your User Profile +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profile Overview +#### Profile Overview In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphs Tab +#### Subgraphs Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -This section will also include details about your net Indexer rewards and net query fees. You’ll see the following metrics: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - the stake from Delegators that can be allocated by you but cannot be slashed -- Total Query Fees - the total fees that users have paid for queries served by you over time -- Indexer Rewards - the total amount of Indexer rewards you have received, in GRT -- Fee Cut - the % of query fee rebates that you will keep when you split with Delegators -- Rewards Cut - the % of Indexer rewards that you will keep when splitting with Delegators -- Owned - your deposited stake, which could be slashed for malicious or incorrect behavior +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -In the first half of the page, you can see your delegation chart, as well as the rewards-only chart. To the left, you can see the KPIs that reflect your current delegation metrics. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -The Delegator metrics you’ll see here in this tab include: +Top Section: -- Total delegation rewards -- Total unrealized rewards -- Total realized rewards +- View delegation and rewards-only charts +- Track key metrics: + - Total delegation rewards + - Unrealized rewards + - Realized Rewards -In the second half of the page, you have the delegations table. Here you can see the Indexers that you delegated towards, as well as their details (such as rewards cuts, cooldown, etc). +Bottom Section: -With the buttons on the right side of the table, you can manage your delegation - delegate more, undelegate, or withdraw your delegation after the thawing period. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Keep in mind that this chart is horizontally scrollable, so if you scroll all the way to the right, you can also see the status of your delegation (delegating, undelegating, withdrawable). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Within this tab, you’ll find an overview of: @@ -232,22 +260,22 @@ Within this tab, you’ll find an overview of: - Query rewards per Subgraph - Updated at date details -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Your Profile Settings +#### Your Profile Settings Within your user profile, you’ll be able to manage your personal profile details (like setting up an ENS name). If you’re an Indexer, you have even more access to settings at your fingertips. In your user profile, you’ll be able to set up your delegation parameters and operators. - Operators take limited actions in the protocol on the Indexer's behalf, such as opening and closing allocations. Operators are typically other Ethereum addresses, separate from their staking wallet, with gated access to the network that Indexers can personally set - Delegation parameters allow you to control the distribution of GRT between you and your Delegators. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Додаткові матеріали +### Додаткові матеріали ### Video Guide From 5fcf0d9f5b4f3b536e581fa6f8d75065b9dde2ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:30 -0400 Subject: [PATCH 0150/1709] New translations explorer.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/zh/subgraphs/explorer.mdx b/website/src/pages/zh/subgraphs/explorer.mdx index e2e8147cd683..ce82f80a2b19 100644 --- a/website/src/pages/zh/subgraphs/explorer.mdx +++ b/website/src/pages/zh/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph 浏览器 --- -使用 [Graph Explorer](https://thegraph.com/explorer)解锁子图和网络数据。 +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## 概述 -Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) 互动,使用 [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one),查看[网络信息](https://thegraph.com/explorer/network?chain=arbitrum-one),并访问您的用户配置文件。 +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## 内置浏览器 +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -下面是Graph Explorer所有关键特征的细分。 您可以观看[Graph浏览器视频指南](/subgraphs/explorer/#video-guide)。 +## 先决条件 -### 子图页面 +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -部署并在Subgraph Studio发布您的子图后, 前往[Graph Explorer](https://thegraph.com/explorer),然后点击导航栏中的“[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)”链接访问以下内容: +## Navigating Graph Explorer -- 您自己完成的子图 -- 其他人发布的子图 -- 您想要的精确子图 (基于创建的日期、信号数量或名称)。 +### Step 1. Explore Subgraphs -![Explorer 图像 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -当您点击子图时,将能够做以下工作: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- 在面板测试查询,并能够通过网络细节来做出知情的决定。 -- 您还可以在自己的子图或其他人的子图中发出 GRT 信号,以使索引人意识到其重要性和质量。 +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - 这很关键,因为子图上的信号会激励它被索引,这意味着它将出现在网络上,最终为查询提供服务。 +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer 图像 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- 在面板测试查询,并能够通过网络细节来做出知情的决定。 +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) 在每个子图的专用页面,您可以做以下工作: -- 子图上的信号/非信号 -- 查看详细信息,例如图表、当前部署 ID 和其他元数据 -- 切换版本以探索子图的历史迭代 - 通过 GraphQL 查询子图 +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - 在面板上测试子图 - 查看在某个子图上建立索引的索引人 - 子图统计信息(分配、策展人等) -- 查看发布子图的实体 +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer 图像 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### 授权页面 +### Step 2. Delegate GRT -在 [委托](https://thegraph.com/explorer/delegate?chain=arbitrum-one)页面, 您可以找到关于委托、 获取GRT和选择索引人的信息。 +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -在这个页面上,您可以看到: +Here, you can: -- 收取最多查询费的索引人 -- 估值最大的 APR 索引人 +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -此外,您可以计算您的 ROI 并通过名称、地址或子图搜索顶级索引人。 +### Step 3. Monitor Participants in the Network -### 参与者页面 +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -这个页面提供了所有“参与者”的鸟视图,包括参与网络的每个人,如索引人、委托人和策展人。 +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. 索引人 +#### 索引人 -![Explorer 图像 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) 索引人是协议的骨干,是那些质押于子图、索引它们并向使用子图的任何人提供查询服务的人。 -在 索引人表中,您将能够看到 索引人的委托参数、他们的权益、他们对每个子图的权益以及他们从查询费用和索引奖励中获得的收入。 +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **详情** -- 查询费用划分 - 索引人与委托人划分查询费用的百分比。 -- 有效的奖励划分 - 应用于委托池的索引奖励削减。 如果是负数,则意味着索引人正在赠送部分奖励。 如果是正数,则意味着索引人保留了他们的一些奖励。 -- 冷却时间剩余 - 索引人可以更改上述委托参数之前的剩余时间。 冷却时间由索引人在更新委托参数时设置。 -- 已拥有 - 索引人的存入份额,可能会因恶意或不正确的行为被削减。 -- 已委托 - 委托人的份额可以由索引人分配,但不能被削减。 -- 已分配 - 索引人积极分配给他们正在索引的子图。 -- 可用委托容量 - 索引人在过度委托之前仍然可以收到的委托数量。 -- 最大委托容量 - 索引人可以有效接受的最大委托份额数量。 超出的委托权益不能用于分配或奖励计算。 -- 查询费用 - 这是最终用户一直以来为索引人的查询支付的费用。 -- 索引者奖励 - 这是索引人及其委托人在所有时间获得的总索引人奖励。 索引人奖励通过 GRT 发行支付。 +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. 索引人可以获得查询费用和索引奖励。 从功能上讲,当网络参与人将 GRT 委托给索引人时,就会发生这种情况。 这使索引人能够根据其索引参数接收查询费用和奖励。 @@ -86,9 +106,9 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// 要了解更多关于如何成为索引人的信息,您可以查看[官方文档](/indexing/overview/)或[The Graph学院索引人指南。](https://thegraph.academy/delegators/choosing-indexers/) -![索引详情面板](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. 策展人 +#### Curators 策展人分析子图以确定哪些子图质量最高。 一旦策展人发现一个潜在有吸引力的子图,他们就可以通过在其粘合曲线上发出信号来策展。 在这样做时,策展人让索引人知道哪些子图是高质量的且应该被索引。 @@ -102,11 +122,11 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - 已存入的 GRT 数量 - 策展人拥有的股份数量 -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) 如果你想了解更多关于管理员角色的信息,你可以通过访问[正式文件](/resources/roles/curating/)或[The Graph学院](https://thegraph.academy/curators/)来做到这一点。 -#### 3. 委托人 +#### 委托人 委托人在维护The Graph网络的安全和去中心化方面发挥着关键作用。 他们通过向一个或多个索引人委托(如“质押”)GRT代币来参加网络。 @@ -114,7 +134,7 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - 委托人反过来根据许多不同的变量选择索引人,例如过去的表现、索引奖励率和查询费用削减。 - 社区内部的信誉也可以在甄选过程中发挥一定作用。 建议通过[ The Graph的Discord](https://discord.gg/graphprotocol)或[ The Graph论坛](https://forum.thegraph.com/)与选中的索引人连接。 -![Explorer 图像 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) 在委托人表格上,你可以看到社区中的积极委托人和重要的衡量尺度: @@ -127,9 +147,9 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// 如果你想了解更多关于如何成为委托人的信息,你可以通过访问[正式文件](/resources/roles/delegating/delegating/)或[The Graph学院](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers)来做到这一点。 -### 网络页面 +### Step 4. Analyze Network Performance -在网络部分,您将看到全局 KPI 以及切换到每个时期的基础和更详细地分析网络指标的能力。 这些详细信息将让您了解网络随时间推移的表现。 +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### 概述 @@ -147,7 +167,7 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - **查询费用代表消费者产生的费用**。索引人可以在至少7个时期(见下文)后声明(或不声明)它们,这些时期是在它们对子图的分配被关闭并且它们提供的数据已经被消费者验证之后。 - **索引奖励表示索引人在时期里从网络发布中获得的奖励金额。**虽然协议发布是固定的,但只有在索引人关闭其对已索引的子图的分配时,才会产生奖励。因此,每个时期的奖励数量各不相同(即在某些时期里,索引人可能会集体关闭已开放多日的分配)。 -![Explorer 图像 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### 时期 @@ -161,69 +181,77 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - 分发时期是时期的状态通道正在结算的时期,索引人可以要求他们的查询费用回扣。 - 最终确定的时期是索引人没有留下查询费回扣的时期,因此被最终确定。 -![Explorer 图像 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## 您的用户资料 +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -无论您以何种方式参与网络,您的个人资料都是您查看网络活动的地方。 您的加密钱包将作为您的用户资料,通过用户面板,您将能够看到: +### Step 2. Explore the Tabs -### 个人资料概览 +#### 个人资料概览 在本节中,您可以查看以下内容: -- 您当前完成的任何操作。 -- 您的个人资料信息、描述和网站 (如果您添加了一个)。 +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer 图像 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### 子图标签 +#### 子图标签 -在子图选项卡中,您将看到您已发布的子图。 +The Subgraphs tab displays all your published Subgraphs. -> 这将不包括为测试目的使用 CLI 部署的任何子图——子图只会在它们发布到去中心化网络时显示。 +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer 图像 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### 索引标签 +#### 索引标签 -在索引选项卡中,您将找到一个包含所有活动和历史分配给子图的表格。 您还会找到图表,在那里可以看到和分析您过去作为索引人的表现。 +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -本节还将包括有关您的净索引人奖励和净查询费用的详细信息。 您将看到以下指标: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- 已委托份额 - 委托人的份额,您可以分配但不能被削减 -- 总查询费用 - 用户在一段时间内为您提供的查询支付的总费用 -- 索引人奖励- 您收到的索引人奖励总额,以 GRT 为单位 -- 费用划分 - 当您与委托人拆分时,您将保留的查询费用回扣百分比 -- 奖励划分 - 与委托人拆分时您将保留的索引人奖励的百分比 -- 已拥有 - 您存入的股份,可能会因恶意或不正确的行为而被削减 +Track your Indexer performance with visual charts and key metrics, including: -![Explorer 图像 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### 委托标签 +![Indexer Stats](/img/Indexer-Stats.png) -委托人对Graph网络很重要。他们必须利用自己的知识选择一个能够提供健康回报的索引人。 +#### 委托标签 -在委托人选项卡中,可以找到您积极的和历史性委托的详情,连同您委托给索引人的指标。 +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -在页面的前半部分,您可以看到您的委托图表,以及仅奖励图表。 在左侧,您可以看到反映您当前委托指标的 KPI。 +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -您将在此选项卡中看到的委托人指标包括: +Top Section: -- 总委托奖励 -- 未实现的总奖励 -- 已实现的总奖励 +- View delegation and rewards-only charts +- Track key metrics: + - 总委托奖励 + - Unrealized rewards + - Realized Rewards -在页面的后半部分,您将看到委托标签。 在这里,您可以看到您委托给的索引人,以及它们的详细信息(例如奖励削减、冷却时间等)。 +Bottom Section: -通过表格右侧的按钮,你可以管理你的委托--更多的委托,取消委托,或在解冻期后撤回你的委托。 +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -请记住,此图表是可水平滚动的,因此如果您一直向右滚动,您还可以看到您的授权状态(委派、取消委派、可撤回)。 +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### 策展标签 +#### 策展标签 -在策展选项卡中,您将找到正在发送信号的所有子图(从而使您能够接收查询费用)。 信号允许策展人向索引人突出显示哪些子图有价值和值得信赖,从而表明它们需要被索引。 +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. 在此选项卡中,您将找到以下内容的概述: @@ -232,22 +260,22 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - 查询每个子图的奖励 - 更新日期详情 -![Explorer 图像 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### 设置您的个人资料 +#### 设置您的个人资料 在您的用户配置文件中,您将能够管理您的个人配置文件详细信息(例如设置 ENS 名称)。 如果您是 索引人,则可以轻松访问更多设置。 在您的用户配置文件中,您将能够设置您的委托参数和操作员。 - 操作员代表索引人在协议中采取有限的操作,例如打开和关闭分配。 操作员通常是其他以太坊地址,与他们的抵押钱包分开,可以访问索引人可以亲自设置的网络。 - 委托参数允许您控制 GRT 在您和您的委托人之间的分配。 -![Explorer 图像 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) 作为您进入去中心化数据世界的官方门户,无论您在网络中的角色如何,G​​raph 浏览器都允许您采取各种行动。 您可以通过打开地址旁边的下拉菜单进入您的个人资料设置,然后单击设置按钮。 ![钱包细节](/img/Wallet-Details.png) -## 其他资源 +### 其他资源 ### 视频教程 From f02dd50c0e86eed13c998905cb5c48228aaeb0cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:31 -0400 Subject: [PATCH 0151/1709] New translations explorer.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/ur/subgraphs/explorer.mdx b/website/src/pages/ur/subgraphs/explorer.mdx index 6074ff5c5b2f..fb843100e311 100644 --- a/website/src/pages/ur/subgraphs/explorer.mdx +++ b/website/src/pages/ur/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: گراف ایکسپلورر --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## جائزہ -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- مزید تفصیلات دیکھیں جیسے چارٹس، موجودہ تعیناتی ID، اور دیگر میٹا ڈیٹا -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - سب گراف کے اعدادوشمار (مختصات، کیوریٹرز، وغیرہ) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### انڈیکسرز +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- زیادہ سے زیاد ڈیلیلگیشن صلاحیت - ڈیلیلگیٹڈ حصص کی زیادہ سے زیادہ مقدار کو انڈیکسر نتیجہ خیز طور پر قبول کر سکتا ہے۔ ایک اضافی حصص کو مختص کرنے یا انعامات کے حساب کتاب کے لیے استعمال نہیں کیا جا سکتا. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- انڈیکسرز کے انعامات - یہ انڈیکسر اور ان کے ڈیلیگیٹرز کی طرف سے ہر وقت کمائے گئے کل انڈیکسر انعامات ہیں۔ انڈیکسر انعامات GRT کے اجراء کے ذریعے ادا کیے جاتے ہیں. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### کیوریٹرز +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - GRT کا نمبر جو جمع کیا گیا تھا - ایک کیوریٹر کے حصص کی تعداد -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### ڈیلیگیٹرز +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### جائزہ @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### ایپوکس @@ -161,69 +181,77 @@ A few key details to note: - تقسیم کرنے والے اپوچس وہ ایپوکس ہیں جن میں ایپوکس کے لیے ریاستی چینلز طے کیے جا رہے ہیں اور انڈیکسرز اپنی کیوری کی فیس میں چھوٹ کا دعویٰ کر سکتے ہیں. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## آپ کا صارف پروفائل +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### پروفائل کا جائزہ +#### پروفائل کا جائزہ In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### سب گرافس ٹیب +#### سب گرافس ٹیب -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### انڈیکسنگ ٹیب +#### انڈیکسنگ ٹیب -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -اس حصے میں آپ کے نیٹ انڈیکسر انعامات اور نیٹ استفسار کی فیس کے بارے میں تفصیلات بھی شامل ہوں گی۔ آپ کو درج ذیل میٹرکس نظر آئیں گے: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- ڈیلیگیٹڈ اسٹیک - ڈیلیگیٹرز کی طرف سے وہ داؤ جو آپ کے ذریعہ مختص کیا جاسکتا ہے لیکن اسے کم نہیں کیا جاسکتا -- کل کیوری کی فیس - وہ کل فیس جو صارفین نے وقت کے ساتھ آپ کے ذریعہ پیش کردہ کیوریز کے لیے ادا کی ہیں -- انڈیکسر انعامات - GRT میں آپ کو موصول ہونے والے انڈیکسر انعامات کی کل رقم -- فیس کٹ - کیوری کی فیس کی چھوٹ کا % جو آپ ڈیلیگیٹرز کے ساتھ الگ ہونے پر رکھیں گے -- ریوارڈز کٹ - انڈیکسر انعامات کا % جو آپ ڈیلیگیٹرز کے ساتھ تقسیم کرتے وقت رکھیں گے -- ملکیت - آپ کا جمع کردہ حصہ، جو بدنیتی پر مبنی یا غلط رویے کی وجہ سے کم کیا جا سکتا ہے +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### ڈیلگیٹنگ ٹیب +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### ڈیلگیٹنگ ٹیب -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -صفحہ کے پہلے نصف میں، آپ اپنے ڈیلیگیشن چارٹ کے ساتھ ساتھ صرف انعامات کا چارٹ دیکھ سکتے ہیں، بائیں طرف، آپ KPIs دیکھ سکتے ہیں جو آپ کی موجودہ ڈیلیگیشن میٹرکس کی عکاسی کرتے ہیں. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -ڈیلیگیٹر میٹرکس جو آپ یہاں اس ٹیب میں دیکھیں گے ان میں شامل ہیں: +Top Section: -- کل ڈیلیگیشن انعامات -- کل غیر حقیقی انعامات -- کل حقیقی انعامات +- View delegation and rewards-only charts +- Track key metrics: + - کل ڈیلیگیشن انعامات + - Unrealized rewards + - Realized Rewards -صفحہ کے دوسرے حصے میں، آپ کے پاس ڈیلیگیشنز ٹیبل ہے. یہاں آپ انڈیکسرز کو دیکھ سکتے ہیں جنہیں آپ نے ڈیلیگیٹ کیا ہے۔ نیز ان کی تفصیلات (جیسے انعامات میں کمی، کولڈاؤن وغیرہ). +Bottom Section: -ٹیبل کی دائیں جانب بٹنوں کے ساتھ، آپ اپنی ڈیلیگیشن کا انتظام کرسکتے ہیں - مزید ڈیلیگیٹ کریں، عن ڈیلیگیٹ، یہ پگھلنے کے خطرے کے بعد اپنی ڈیلیگیشن کو واپس لے لیں. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -ذہن میں رکھیں کہ یہ چارٹ افقی طور پر سکرول کرنے کے قابل ہے، لہذا اگر آپ پورے راستے سے دائیں طرف سکرول کرتے ہیں، تو آپ اپنی ڈیلیگیشن کی حیثیت بھی دیکھ سکتے ہیں ( ڈیلیگیٹنگ، غیر ڈیلیگیٹنگ، واپس لینے کے قابل). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### کیوریٹنگ ٹیب +#### کیوریٹنگ ٹیب -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. اس ٹیب کے اندر، آپ کو ایک جائزہ ملے گا: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - تاریخ کی تفصیلات پر اپ ڈیٹ کیا گیا -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### آپ کے پروفائل کی ترتیبات +#### آپ کے پروفائل کی ترتیبات اپنے صارف پروفائل کے اندر، آپ اپنی ذاتی پروفائل کی تفصیلات کا نظم کر سکیں گے (جیسے ENS نام ترتیب دینا)۔ اگر آپ ایک انڈیکسر ہیں، تو آپ کو اپنی انگلیوں پر ترتیبات تک اور بھی زیادہ رسائی حاصل ہے۔ اپنے صارف پروفائل میں، آپ اپنے ڈیلیگیشن پیرامیٹرز اور آپریٹرز کو ترتیب دے سکیں گے. - آپریٹرز انڈیکسر کی جانب سے پروٹوکول میں محدود کاڑوائیاں کرتے ہیں، جیسے کہ مختص کھولنا اور بند کرنا. آپریٹرز عام طور پر دوسرے ایتھریم ایڈریس ہوتے ہیں، جو ان کے اسٹیکنگ والیٹ سے الگ ہوتے ہیں،نیٹ ورک تک رسائی کے ساتھ جسے انڈیکسرز ذاتی طور پر سیٹ کر سکتے ہیں - ڈیلیگیشن پیرامیٹرز آپ کو اپنے اور آپ کے ڈیلیگیٹرز کے درمیان GRT کی تقسیم کو کنٹرول کرنے کی اجازت دیتے ہیں. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## اضافی وسائل +### اضافی وسائل ### Video Guide From ba8793abb09e512458c9714a468ae7e8b4161c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:33 -0400 Subject: [PATCH 0152/1709] New translations explorer.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/vi/subgraphs/explorer.mdx b/website/src/pages/vi/subgraphs/explorer.mdx index 2a5747208705..affb003c22ce 100644 --- a/website/src/pages/vi/subgraphs/explorer.mdx +++ b/website/src/pages/vi/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Trình khám phá Graph --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Tổng quan -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- Xem thêm chi tiết như biểu đồ, ID triển khai hiện tại và siêu dữ liệu khác -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Thống kê Subgraph (phân bổ, Curators, v.v.) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- Max Delegation Capacity - the maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- Thưởng Indexer - đây là tổng phần thưởng indexer mà Indexer và các Delegator của họ kiếm được cho đến hiện tại. Phần thưởng Indexer được trả thông qua việc phát hành GRT. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - Số GRT đã được nạp - Số cổ phần một Curator sở hữu -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Tổng quan @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - Epoch đang phân phối là epoch trong đó các kênh trạng thái cho các epoch đang được giải quyết và Indexer có thể yêu cầu hoàn phí truy vấn của họ. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Hồ sơ Người dùng của bạn +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Tổng quan Hồ sơ +#### Tổng quan Hồ sơ In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Tab Subgraphs +#### Tab Subgraphs -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Tab Indexing +#### Tab Indexing -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -Phần này cũng sẽ bao gồm thông tin chi tiết về phần thưởng Indexer ròng của bạn và phí truy vấn ròng. Bạn sẽ thấy các số liệu sau: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Stake được ủy quyền - phần stake từ Delegator có thể được bạn phân bổ nhưng không thể bị phạt cắt giảm (slashed) -- Total Query Fees - the total fees that users have paid for queries served by you over time -- Phần thưởng Indexer - tổng số phần thưởng Indexer bạn đã nhận được, tính bằng GRT -- Phần Cắt Phí - lượng % hoàn phí phí truy vấn mà bạn sẽ giữ lại khi ăn chia với Delegator -- Phần Cắt Thưởng - lượng % phần thưởng Indexer mà bạn sẽ giữ lại khi ăn chia với Delegator -- Được sở hữu - số stake đã nạp của bạn, có thể bị phạt cắt giảm (slashed) vì hành vi độc hại hoặc không chính xác +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Tab Delegating +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Tab Delegating -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -Trong nửa đầu của trang, bạn có thể thấy biểu đồ ủy quyền của mình, cũng như biểu đồ chỉ có phần thưởng. Ở bên trái, bạn có thể thấy các KPI phản ánh các chỉ số ủy quyền hiện tại của bạn. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -Các chỉ số Delegator mà bạn sẽ thấy ở đây trong tab này bao gồm: +Top Section: -- Total delegation rewards -- Tổng số phần thưởng chưa ghi nhận -- Tổng số phần thưởng đã ghi được +- View delegation and rewards-only charts +- Track key metrics: + - Total delegation rewards + - Unrealized rewards + - Realized Rewards -Trong nửa sau của trang, bạn có bảng ủy quyền. Tại đây, bạn có thể thấy các Indexer mà bạn đã ủy quyền, cũng như thông tin chi tiết của chúng (chẳng hạn như phần cắt thưởng, thời gian chờ, v.v.). +Bottom Section: -Với các nút ở bên phải của bảng, bạn có thể quản lý ủy quyền của mình - ủy quyền nhiều hơn, hủy bỏ hoặc rút lại ủy quyền của bạn sau khoảng thời gian rã đông (thawing period). +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -Lưu ý rằng biểu đồ này có thể cuộn theo chiều ngang, vì vậy nếu bạn cuộn hết cỡ sang bên phải, bạn cũng có thể thấy trạng thái ủy quyền của mình (ủy quyền, hủy ủy quyền, có thể rút lại). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Tab Curating +#### Tab Curating -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. Trong tab này, bạn sẽ tìm thấy tổng quan về: @@ -232,22 +260,22 @@ Trong tab này, bạn sẽ tìm thấy tổng quan về: - Query rewards per Subgraph - Chi tiết ngày được cập nhật -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Cài đặt Hồ sơ của bạn +#### Cài đặt Hồ sơ của bạn Trong hồ sơ người dùng của mình, bạn sẽ có thể quản lý chi tiết hồ sơ cá nhân của mình (như thiết lập tên ENS). Nếu bạn là Indexer, bạn thậm chí có nhiều quyền truy cập hơn vào các cài đặt trong tầm tay của mình. Trong hồ sơ người dùng của mình, bạn sẽ có thể thiết lập các tham số ủy quyền và operator của mình. - Operators (Người vận hành) thực hiện các hành động được hạn chế trong giao thức thay mặt cho Indexer, chẳng hạn như mở và đóng phân bổ. Operators thường là các địa chỉ Ethereum khác, tách biệt với ví đặt staking của họ, với quyền truy cập được kiểm soát vào mạng mà Indexer có thể cài đặt cá nhân - Tham số ủy quyền cho phép bạn kiểm soát việc phân phối GRT giữa bạn và các Delegator của bạn. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### Video Guide From e5814bb7bcce35e719f1899140527d3825aee7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:34 -0400 Subject: [PATCH 0153/1709] New translations explorer.mdx (Marathi) --- website/src/pages/mr/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/mr/subgraphs/explorer.mdx b/website/src/pages/mr/subgraphs/explorer.mdx index afcc80c29f35..d236e46a096b 100644 --- a/website/src/pages/mr/subgraphs/explorer.mdx +++ b/website/src/pages/mr/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## सविश्लेषण -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## Prerequisites -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- Subgraphs published by others -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- Test queries in the playground and be able to leverage network details to make informed decisions. -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- Test queries in the playground and be able to leverage network details to make informed decisions. +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- चार्ट, वर्तमान उपयोजन आयडी आणि इतर मेटाडेटा यासारखे अधिक तपशील पहा -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - Subgraph stats (allocations, Curators, etc) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. Indexers +#### Indexers -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **Specifics** -- Query Fee Cut - the % of the query fee rebates that the Indexer keeps when splitting with Delegators. -- Effective Reward Cut - the indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. -- Cooldown Remaining - the time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. -- Owned - This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. -- Delegated - Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- Available Delegation Capacity - the amount of delegated stake the Indexers can still receive before they become over-delegated. -- कमाल डेलिगेशन क्षमता - इंडेक्सर उत्पादकपणे स्वीकारू शकणारी जास्तीत जास्त डेलिगेटेड स्टेक. वाटप किंवा बक्षिसे गणनेसाठी जास्तीचा वाटप केला जाऊ शकत नाही. -- Query Fees - this is the total fees that end users have paid for queries from an Indexer over all time. -- इंडेक्सर रिवॉर्ड्स - हे इंडेक्सर आणि त्यांच्या प्रतिनिधींनी सर्वकाळात मिळवलेले एकूण इंडेक्सर रिवॉर्ड्स आहेत. इंडेक्सर रिवॉर्ड्स GRT जारी करून दिले जातात. +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers can earn both query fees and indexing rewards. Functionally, this happens when network participants delegate GRT to an Indexer. This enables Indexers to receive query fees and rewards depending on their Indexer parameters. @@ -86,9 +106,9 @@ Indexers can earn both query fees and indexing rewards. Functionally, this happe To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. Curators +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ In the The Curator table listed below you can see: - The number of GRT that was deposited - The number of shares a Curator owns -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. Delegators +#### Delegators Delegators play a key role in maintaining the security and decentralization of The Graph Network. They participate in the network by delegating (i.e., “staking”) GRT tokens to one or multiple indexers. @@ -114,7 +134,7 @@ Delegators play a key role in maintaining the security and decentralization of T - Delegators select Indexers based on a number of different variables, such as past performance, indexing reward rates, and query fee cuts. - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) In the Delegators table you can see the active Delegators in the community and important metrics: @@ -127,9 +147,9 @@ In the Delegators table you can see the active Delegators in the community and i If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### सविश्लेषण @@ -147,7 +167,7 @@ A few key details to note: - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### Epochs @@ -161,69 +181,77 @@ In the Epochs section, you can analyze on a per-epoch basis, metrics such as: - वितरण युग हे असे युग आहेत ज्यामध्ये युगांसाठी राज्य चॅनेल सेटल केले जात आहेत आणि इंडेक्सर्स त्यांच्या क्वेरी फी सवलतीचा दावा करू शकतात. - The finalized epochs are the epochs that have no query fee rebates left to claim by the Indexers. -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## Your User Profile +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -Your personal profile is the place where you can see your network activity, regardless of your role on the network. Your crypto wallet will act as your user profile, and with the User Dashboard, you’ll be able to see the following tabs: +### Step 2. Explore the Tabs -### Profile Overview +#### Profile Overview In this section, you can view the following: -- Any of your current actions you've done. -- Your profile information, description, and website (if you added one). +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### Subgraphs Tab +#### Subgraphs Tab -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### Indexing Tab +#### Indexing Tab -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -या विभागात तुमच्या निव्वळ इंडेक्सर रिवॉर्ड्स आणि नेट क्वेरी फीबद्दल तपशील देखील समाविष्ट असतील. तुम्हाला खालील मेट्रिक्स दिसतील: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- Delegated Stake - the stake from Delegators that can be allocated by you but cannot be slashed -- एकूण क्वेरी शुल्क - वापरकर्त्यांनी वेळोवेळी तुमच्याद्वारे दिलेल्या क्वेरींसाठी भरलेले एकूण शुल्क -- Indexer Rewards - the total amount of Indexer rewards you have received, in GRT -- फी कट - तुम्ही डेलिगेटर्ससह विभक्त झाल्यावर तुम्ही ठेवू शकणार्‍या क्वेरी फी सवलतींचा % -- Rewards Cut - the % of Indexer rewards that you will keep when splitting with Delegators -- मालकीचा - तुमचा जमा केलेला हिस्सा, जो दुर्भावनापूर्ण किंवा चुकीच्या वर्तनासाठी कमी केला जाऊ शकतो +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### Delegating Tab +![Indexer Stats](/img/Indexer-Stats.png) -Delegators are important to the Graph Network. They must use their knowledge to choose an Indexer that will provide a healthy return on rewards. +#### Delegating Tab -In the Delegators tab, you can find the details of your active and historical delegations, along with the metrics of the Indexers that you delegated towards. +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -पृष्‍ठाच्या पूर्वार्धात, तुम्‍ही तुमच्‍या डेलिगेशन चार्ट तसेच रिवॉर्ड-ओन्ली चार्ट पाहू शकता. डावीकडे, तुम्ही KPI पाहू शकता जे तुमचे वर्तमान प्रतिनिधीत्व मेट्रिक्स दर्शवतात. +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -या टॅबमध्ये तुम्हाला येथे दिसणार्‍या डेलिगेटर मेट्रिक्समध्ये हे समाविष्ट आहे: +Top Section: -- एकूण प्रतिनिधीत्व बक्षिसे -- Total unrealized rewards -- Total realized rewards +- View delegation and rewards-only charts +- Track key metrics: + - एकूण प्रतिनिधीत्व बक्षिसे + - Unrealized rewards + - Realized Rewards -पृष्ठाच्या दुसऱ्या सहामाहीत, आपल्याकडे प्रतिनिधी टेबल आहे. येथे तुम्ही ज्या निर्देशांकांना तुम्ही नियुक्त केले आहे, तसेच त्यांचे तपशील (जसे की रिवॉर्ड कट, कूलडाउन इ.) पाहू शकता. +Bottom Section: -टेबलच्या उजव्या बाजूला असलेल्या बटणांच्या सहाय्याने, तुम्ही तुमचे प्रतिनिधीमंडळ व्यवस्थापित करू शकता - वितळण्याच्या कालावधीनंतर तुमचे प्रतिनिधीमंडळ अधिक प्रतिनिधी, अस्वीकृत किंवा मागे घेऊ शकता. +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -लक्षात ठेवा की हा चार्ट क्षैतिजरित्या स्क्रोल करण्यायोग्य आहे, म्हणून तुम्ही उजवीकडे स्क्रोल केल्यास, तुम्ही तुमच्या प्रतिनिधीची स्थिती देखील पाहू शकता (प्रतिनिधी, अस्वीकृत, मागे घेण्यायोग्य). +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### Curating Tab +#### Curating Tab -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. या टॅबमध्ये, तुम्हाला याचे विहंगावलोकन मिळेल: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - Updated at date details -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### Your Profile Settings +#### Your Profile Settings तुमच्या वापरकर्ता प्रोफाइलमध्ये, तुम्ही तुमचे वैयक्तिक प्रोफाइल तपशील व्यवस्थापित करण्यास सक्षम असाल (जसे की ENS नाव सेट करणे). तुम्ही इंडेक्सर असल्यास, तुमच्या बोटांच्या टोकावर असलेल्या सेटिंग्जमध्ये तुम्हाला आणखी प्रवेश आहे. तुमच्या वापरकर्ता प्रोफाइलमध्ये, तुम्ही तुमचे डेलिगेशन पॅरामीटर्स आणि ऑपरेटर सेट करू शकाल. - ऑपरेटर इंडेक्सरच्या वतीने प्रोटोकॉलमध्ये मर्यादित कृती करतात, जसे की वाटप उघडणे आणि बंद करणे. ऑपरेटर हे सामान्यत: इतर इथरियम पत्ते असतात, जे त्यांच्या स्टॅकिंग वॉलेटपासून वेगळे असतात, इंडेक्सर्स वैयक्तिकरित्या सेट करू शकणार्‍या नेटवर्कवर गेट केलेला प्रवेश असतो - Delegation parameters allow you to control the distribution of GRT between you and your Delegators. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## अतिरिक्त संसाधने +### अतिरिक्त संसाधने ### Video Guide From cdcf607b4d47c3237c2ea1678342a29c3037e8d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 10 Apr 2025 18:24:35 -0400 Subject: [PATCH 0154/1709] New translations explorer.mdx (Hindi) --- website/src/pages/hi/subgraphs/explorer.mdx | 204 +++++++++++--------- 1 file changed, 116 insertions(+), 88 deletions(-) diff --git a/website/src/pages/hi/subgraphs/explorer.mdx b/website/src/pages/hi/subgraphs/explorer.mdx index 64a671781463..dd17553bf415 100644 --- a/website/src/pages/hi/subgraphs/explorer.mdx +++ b/website/src/pages/hi/subgraphs/explorer.mdx @@ -2,83 +2,103 @@ title: Graph Explorer --- -Unlock the world of Subgraphs and network data with [Graph Explorer](https://thegraph.com/explorer). +Use [Graph Explorer](https://thegraph.com/explorer) and take full advantage of its core features. ## Overview -Graph Explorer consists of multiple parts where you can interact with [Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one), [delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one), engage [participants](https://thegraph.com/explorer/participants?chain=arbitrum-one), view [network information](https://thegraph.com/explorer/network?chain=arbitrum-one), and access your user profile. +This guide explains how to use [Graph Explorer](https://thegraph.com/explorer) to quickly discover and interact with Subgraphs on The Graph Network, delegate GRT, view participant metrics, and analyze network performance. -## Inside Explorer +> When you visit Graph Explorer, you can also access the link to [explore Substreams](https://substreams.dev/). -The following is a breakdown of all the key features of Graph Explorer. For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). +## आवश्यक शर्तें -### Subgraphs Page +- To perform actions, you need a wallet (e.g., MetaMask) connected to [Graph Explorer](https://thegraph.com/explorer). + > Make sure your wallet is connected to the correct network (e.g., Arbitrum). Features and data shown are network specific. +- GRT tokens if you plan to delegate or curate. +- Basic knowledge of [Subgraphs](https://thegraph.com/docs/en/subgraphs/developing/subgraphs/) -After deploying and publishing your Subgraph in Subgraph Studio, go to [Graph Explorer](https://thegraph.com/explorer) and click on the "[Subgraphs](https://thegraph.com/explorer?chain=arbitrum-one)" link in the navigation bar to access the following: +## Navigating Graph Explorer -- Your own finished Subgraphs -- दूसरों द्वारा प्रकाशित subgraphs -- The exact Subgraph you want (based on the date created, signal amount, or name). +### Step 1. Explore Subgraphs -![Explorer Image 1](/img/Subgraphs-Explorer-Landing.png) +> For additional support, you can watch the [Graph Explorer video guide](/subgraphs/explorer/#video-guide). -When you click into a Subgraph, you will be able to do the following: +Go to the Subgraphs page in [Graph Explorer](https://thegraph.com/explorer). -- प्लेग्राउंड में परीक्षण प्रश्न करें और सूचनापूर्ण निर्णय लेने के लिए नेटवर्क विवरण का उपयोग करें। -- Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. +- If you've deployed and published your Subgraph in Subgraph Studio, you can view it here. +- Search all published Subgraphs and filter them by indexed network, specific categories (such as DeFI, NFTs, and DAOs), and **most queried, most curated, recently created, and recently updated**. + +![Graph Explorer Subgraphs page](/img/explorer-subgraphs-page.png) + +To find Subgraphs indexing a specific contract, enter the contract address into the search bar. + +- For example, you can enter the L2GNS contract on Artbitrum (`0xec9A7fb6CbC2E41926127929c2dcE6e9c5D33Bec`) and this returns all Subgraphs indexing that contract: + +![Search by Indexing Contract](/img/explorer-search.png) - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. +> Looking for indexing contracts? Check out [this Subgraph](https://thegraph.com/explorer/subgraphs/FMTUN6d7sY2bLnAmNEPJTqiU3iuQht6ZXurpBh71wbWR?view=About&chain=arbitrum-one) which indexes contract addresses listed in its manifest. It shows all current deployments indexing those contracts on Arbitrum One, along with the signal allocated to each. -![Explorer Image 2](/img/Subgraph-Details.png) +You can click into any Subgraph, to: + +- प्लेग्राउंड में परीक्षण प्रश्न करें और सूचनापूर्ण निर्णय लेने के लिए नेटवर्क विवरण का उपयोग करें। +- Signal GRT on your own Subgraph or the Subgraphs of others to make Indexers aware of its importance and quality. + > This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it'll eventually surface on the network to serve queries. + +![Subgraph Details](/img/explorer-subgraph-details.png) On each Subgraph’s dedicated page, you can do the following: -- Signal/Un-signal on Subgraphs -- चार्ट, वर्तमान परिनियोजन आईडी और अन्य मेटाडेटा जैसे अधिक विवरण देखें -- Switch versions to explore past iterations of the Subgraph - Query Subgraphs via GraphQL +- View Subgraph ID, current deployment ID, Query URL, and other metadata +- Signal/unsignal on Subgraphs - Test Subgraphs in the playground - View the Indexers that are indexing on a certain Subgraph - सबग्राफ आँकड़े (आवंटन, क्यूरेटर, आदि) -- View the entity who published the Subgraph +- View query fees and charts +- Change versions to explore past iterations of the Subgraph +- View entity types +- View Subgraph activity -![Explorer Image 3](/img/Explorer-Signal-Unsignal.png) +![Signal/unsignal on Subgraph](/img/explorer-signal.png) -### Delegate Page +### Step 2. Delegate GRT -On the [Delegate page](https://thegraph.com/explorer/delegate?chain=arbitrum-one), you can find information about delegating, acquiring GRT, and choosing an Indexer. +Go to the [Delegate](https://thegraph.com/explorer/delegate?chain=arbitrum-one) page to learn how to delegate, get GRT, and choose an Indexer. -On this page, you can see the following: +Here, you can: -- Indexers who collected the most query fees -- Indexers with the highest estimated APR +- Compare Indexers by most query fees earned and highest estimated APR. +- Use the built-in ROI calculator or search by Indexer name or address. +- Click **"Delegate"** next to an Indexer to stake your GRT. -Additionally, you can calculate your ROI and search for top Indexers by name, address, or Subgraph. +### Step 3. Monitor Participants in the Network -### Participants Page +Go to the [Participants](https://thegraph.com/explorer/participants?chain=arbitrum-one) page to view: -This page provides a bird's-eye view of all "participants," which includes everyone participating in the network, such as Indexers, Delegators, and Curators. +- Indexers: stakes, allocations, rewards, and delegation parameters +- Curators: signal amounts, Subgraph shares, and activity history +- Delegators: current and historical delegations, rewards, and Indexer metrics -#### 1. इंडेक्सर्स +#### Indexer -![Explorer Image 4](/img/Indexer-Pane.png) +![Indexers Table](/img/explorer-indexers.png) Indexers are the backbone of the protocol. They stake on Subgraphs, index them, and serve queries to anyone consuming Subgraphs. -In the Indexers table, you can see an Indexers’ delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. +In the Indexers table, you can see an Indexer's delegation parameters, their stake, how much they have staked to each Subgraph, and how much revenue they have made from query fees and indexing rewards. **विशिष्टताएँ** -- क्वेरी फ़ी कट - वह % जो क्वेरी फ़ी रिबेट्स का हिस्सा है जो Indexer, Delegators के साथ बाँटते समय रखता है। -- प्रभावी पुरस्कार कट - वह इंडेक्सिंग पुरस्कार कट जो डेलीगेशन पूल पर लागू होता है। यदि यह नकारात्मक है, तो इसका मतलब है कि इंडेक्सर अपने पुरस्कारों का एक हिस्सा दे रहा है। यदि यह सकारात्मक है, तो इसका मतलब है कि Indexer अपने कुछ पुरस्कार रख रहा है। -- कूलडाउन शेष - वह समय जो उपरोक्त डेलीगेशन पैरामीटर को बदलने के लिए Indexer को बचा है। कूलडाउन अवधि वे होती हैं जो Indexers अपने डेलीगेशन पैरामीटर को अपडेट करते समय सेट करते हैं। -- यह है Indexer का जमा किया गया हिस्सेदारी, जिसे दुष्ट या गलत व्यवहार के लिए काटा जा सकता है। -- प्रतिनिधि - 'Delegators' से स्टेक जो 'Indexers' द्वारा आवंटित किया जा सकता है, लेकिन इसे स्लैश नहीं किया जा सकता। -- Allocated - Stake that Indexers are actively allocating towards the Subgraphs they are indexing. -- अवेलबल डेलीगेशन कैपेसिटी - वह मात्रा जो डेलीगेटेड स्टेक है, जो Indexers अभी भी प्राप्त कर सकते हैं इससे पहले कि वे ओवर-डेलीगेटेड हो जाएं। -- अधिकतम प्रत्यायोजन क्षमता - प्रत्यायोजित हिस्सेदारी की अधिकतम राशि जिसे इंडेक्सर उत्पादक रूप से स्वीकार कर सकता है। आवंटन या पुरस्कार गणना के लिए एक अतिरिक्त प्रत्यायोजित हिस्सेदारी का उपयोग नहीं किया जा सकता है। -- क्वेरी शुल्क - यह कुल शुल्क है जो अंतिम उपयोगकर्ताओं ने सभी समय में एक Indexer से क्वेरी के लिए भुगतान किया है। -- इंडेक्सर रिवार्ड्स - यह इंडेक्सर और उनके प्रतिनिधियों द्वारा हर समय अर्जित किए गए कुल इंडेक्सर पुरस्कार हैं। इंडेक्सर पुरस्कार का भुगतान जीआरटी जारी करने के माध्यम से किया जाता है। +- Query Fee Cut: The % of the query fee rebates that the Indexer keeps when splitting with Delegators. +- Effective Reward Cut: The indexing reward cut applied to the delegation pool. If it’s negative, it means that the Indexer is giving away part of their rewards. If it’s positive, it means that the Indexer is keeping some of their rewards. +- Cooldown Remaining: The time remaining until the Indexer can change the above delegation parameters. Cooldown periods are set up by Indexers when they update their delegation parameters. +- Owned: This is the Indexer’s deposited stake, which may be slashed for malicious or incorrect behavior. +- Delegated: Stake from Delegators which can be allocated by the Indexer, but cannot be slashed. +- Allocated: Stake that Indexers are actively allocating towards the Subgraphs they are indexing. +- Available Delegation Capacity: The amount of delegated stake the Indexers can still receive before they become over-delegated. +- Max Delegation Capacity: The maximum amount of delegated stake the Indexer can productively accept. An excess delegated stake cannot be used for allocations or rewards calculations. +- Query Fees: This is the total fees that end users have paid for queries from an Indexer over all time. +- Indexer Rewards: This is the total indexer rewards earned by the Indexer and their Delegators over all time. Indexer rewards are paid through GRT issuance. Indexers दोनों क्वेरी फीस और इंडेक्सिंग पुरस्कार कमा सकते हैं। कार्यात्मक रूप से, यह तब होता है जब नेटवर्क प्रतिभागी GRT को एक Indexer को सौंपते हैं। इससे Indexers को उनके Indexer पैरामीटर के आधार पर क्वेरी फीस और पुरस्कार प्राप्त होते हैं। @@ -86,9 +106,9 @@ Indexers दोनों क्वेरी फीस और इंडेक् To learn more about how to become an Indexer, you can take a look at the [official documentation](/indexing/overview/) or [The Graph Academy Indexer guides.](https://thegraph.academy/delegators/choosing-indexers/) -![Indexing details pane](/img/Indexing-Details-Pane.png) +![Indexing Details Pane](/img/Indexing-Details-Pane.png) -#### 2. क्यूरेटर +#### Curators Curators analyze Subgraphs to identify which Subgraphs are of the highest quality. Once a Curator has found a potentially high-quality Subgraph, they can curate it by signaling on its bonding curve. In doing so, Curators let Indexers know which Subgraphs are high quality and should be indexed. @@ -102,11 +122,11 @@ Curators analyze Subgraphs to identify which Subgraphs are of the highest qualit - जमा किए गए जीआरटी की संख्या - एक क्यूरेटर के शेयरों की संख्या -![Explorer Image 6](/img/Curation-Overview.png) +![Curators Table](/img/explorer-curators.png) If you want to learn more about the Curator role, you can do so by visiting [official documentation.](/resources/roles/curating/) or [The Graph Academy](https://thegraph.academy/curators/). -#### 3. प्रतिनिधि +#### Delegator The Graph Network की सुरक्षा और विकेंद्रीकरण को बनाए रखने में Delegators की महत्वपूर्ण भूमिका होती है। वे नेटवर्क में भाग लेते हैं 'delegating' (यानी, 'staking') करके और GRT tokens को एक या एक से अधिक Indexers को सौंपते हैं। @@ -114,7 +134,7 @@ The Graph Network की सुरक्षा और विकेंद्र - डेलीगेटर्स विभिन्न कारकों के आधार पर इंडेक्सर्स का चयन करते हैं, जैसे कि पिछले प्रदर्शन, इंडेक्सिंग इनाम दरें, और क्वेरी शुल्क कट। - Reputation within the community can also play a factor in the selection process. It's recommended to connect with the selected Indexers via [The Graph's Discord](https://discord.gg/graphprotocol) or [The Graph Forum](https://forum.thegraph.com/). -![Explorer Image 7](/img/Delegation-Overview.png) +![Delegators Table](/img/explorer-delegators.png) Delegators तालिका में आप समुदाय में सक्रिय Delegators और महत्वपूर्ण मैट्रिक्स देख सकते हैं: @@ -127,9 +147,9 @@ Delegators तालिका में आप समुदाय में स If you want to learn more about how to become a Delegator, check out the [official documentation](/resources/roles/delegating/delegating/) or [The Graph Academy](https://docs.thegraph.academy/official-docs/delegator/choosing-indexers). -### Network Page +### Step 4. Analyze Network Performance -On this page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. +On the [Network](https://thegraph.com/explorer/network?chain=arbitrum-one) page, you can see global KPIs and have the ability to switch to a per-epoch basis and analyze network metrics in more detail. These details will give you a sense of how the network is performing over time. #### Overview @@ -147,7 +167,7 @@ On this page, you can see global KPIs and have the ability to switch to a per-ep - **Query fees represent the fees generated by the consumers**. They can be claimed (or not) by the Indexers after a period of at least 7 epochs (see below) after their allocations towards the Subgraphs have been closed and the data they served has been validated by the consumers. - **Indexing rewards represent the amount of rewards the Indexers claimed from the network issuance during the epoch.** Although the protocol issuance is fixed, the rewards only get minted once Indexers close their allocations towards the Subgraphs they’ve been indexing. So, the per-epoch number of rewards varies (ie. during some epochs, Indexers might’ve collectively closed allocations that have been open for many days). -![Explorer Image 8](/img/Network-Stats.png) +![Network Overview](/img/explorer-network.png) #### अवधियों को @@ -161,69 +181,77 @@ On this page, you can see global KPIs and have the ability to switch to a per-ep - वितरण युग ऐसे युग हैं जिनमें युगों के लिए राज्य चैनल तय किए जा रहे हैं और अनुक्रमणकर्ता अपनी क्वेरी शुल्क छूट का दावा कर सकते हैं। - अंतिम चरण वे चरण हैं जिनमें Indexers द्वारा दावा करने के लिए कोई प्रश्न शुल्क छूट शेष नहीं है। -![Explorer Image 9](/img/Epoch-Stats.png) +![Epochs](/img/explorer-epochs.png) + +## Access and Manage Your User Profile + +### Step 1. Access Your Profile -## आपका उपयोगकर्ता प्रोफ़ाइल +- Click your wallet address in the top right corner +- Your wallet acts as your user profile +- In your profile dashboard, you can view and interact with several useful tabs -आपकी व्यक्तिगत प्रोफ़ाइल वह स्थान है जहां आप अपने नेटवर्क गतिविधि को देख सकते हैं, चाहे आपकी भूमिका नेटवर्क पर कुछ भी हो। आपका क्रिप्टो वॉलेट आपके उपयोगकर्ता प्रोफ़ाइल के रूप में कार्य करेगा, और उपयोगकर्ता डैशबोर्ड के साथ, आप निम्नलिखित टैब देख सकेंगे: +### Step 2. Explore the Tabs -### प्रोफ़ाइल अवलोकन +#### प्रोफ़ाइल अवलोकन इस खंड में, आप निम्नलिखित देख सकते हैं: -- आपकी वर्तमान क्रियाओं में से कोई भी आपने किया है। -- आपकी प्रोफ़ाइल जानकारी, विवरण, और वेबसाइट (यदि आपने एक जोड़ी है)। +- Your activity +- Your profile information: total query fees, total shares value, owned stake, stake delegating -![Explorer Image 10](/img/Profile-Overview.png) +![Profile Overview](/img/Profile-Overview.png) -### सबग्राफ टैब +#### सबग्राफ टैब -In the Subgraphs tab, you’ll see your published Subgraphs. +The Subgraphs tab displays all your published Subgraphs. -> This will not include any Subgraphs deployed with the CLI for testing purposes. Subgraphs will only show up when they are published to the decentralized network. +> Subgraphs deployed with the CLI for testing purposes will not show up here. Subgraphs will only show up when they are published to the decentralized network. -![Explorer Image 11](/img/Subgraphs-Overview.png) +![Subgraphs Overview](/img/Subgraphs-Overview.png) -### अनुक्रमण टैब +#### अनुक्रमण टैब -In the Indexing tab, you’ll find a table with all the active and historical allocations towards Subgraphs. You will also find charts where you can see and analyze your past performance as an Indexer. +> If you haven't indexed, you will see links to stake to index Subgraphs and browse Subgraphs on Graph Explorer. -इस खंड में आपके नेट इंडेक्सर रिवार्ड्स और नेट क्वेरी फीस के विवरण भी शामिल होंगे। आपको ये मेट्रिक दिखाई देंगे: +The Indexing tab displays a table where you can review active and historical allocations to Subgraphs. -- प्रत्यायोजित हिस्सेदारी - प्रतिनिधियों की हिस्सेदारी जो आपके द्वारा आवंटित की जा सकती है लेकिन कम नहीं की जा सकती -- कुल प्रश्न शुल्क - कुल शुल्क जो उपयोगकर्ताओं ने समय के साथ आपके द्वारा की गई प्रश्नों के लिए भुगतान किया है -- इंडेक्सर रिवार्ड्स - जीआरटी में आपको प्राप्त इंडेक्सर रिवार्ड्स की कुल राशि -- शुल्क में कटौती - क्वेरी शुल्क का % छूट जो आप डेलीगेटर्स के साथ अलग होने पर रखेंगे -- रिवार्ड्स कट - इंडेक्सर रिवार्ड्स का वह % जिसे आप डेलीगेटर्स के साथ विभाजित करते समय रखेंगे -- स्वामित्व - यह इंडेक्सर की जमा हिस्सेदारी है, जिसे दुर्भावनापूर्ण या गलत व्यवहार के लिए घटाया जा सकता है +Track your Indexer performance with visual charts and key metrics, including: -![Explorer Image 12](/img/Indexer-Stats.png) +- Delegated Stake: Stake from Delegators that can be allocated by you but cannot be slashed. +- Total Query Fees: Cumulative fees from served queries. +- Indexer Rewards (in GRT): Total rewards earned. +- Fee Cut & Rewards Cut: The % of query fee rebates and Indexer rewards you'll keep when you split with Delegators. +- Owned Stake: Your deposited stake, which could be slashed for malicious or incorrect behavior. -### प्रतिनिधि टैब +![Indexer Stats](/img/Indexer-Stats.png) -Delegator ,The Graph नेटवर्क के लिए महत्वपूर्ण हैं। उन्हें अपने ज्ञान का उपयोग करके एक इंडेक्सर का चयन करना चाहिए जो पुरस्कारों पर स्वस्थ रिटर्न प्रदान करेगा। +#### प्रतिनिधि टैब -डेलीगेटर्स टैब में, आप अपनी सक्रिय और ऐतिहासिक डेलीगेशंस का विवरण पा सकते हैं, साथ ही उन Indexers के मेट्रिक्स भी जिनकी ओर आपने डेलीगेट किया है। +> To learn more about the benefits of delegating, check out [delegating](/resources/roles/delegating/delegating/). -पृष्ठ के पहले भाग में, आप अपना प्रतिनिधिमंडल चार्ट और साथ ही केवल-पुरस्कार चार्ट देख सकते हैं। बाईं ओर, आप वे KPI देख सकते हैं जो आपके वर्तमान डेलिगेशन मेट्रिक्स को दर्शाते हैं। +The Delegators tab displays your active and historical delegations, along with the metrics for the Indexers you've delegated to. -इस टैब में आप यहां जो डेलिगेटर मेट्रिक्स देखेंगे उनमें शामिल हैं: +Top Section: -- कुल प्रतिनिधिमंडल पुरस्कार -- कुल अचेतन पुरस्कार -- कुल एहसास पुरस्कार +- View delegation and rewards-only charts +- Track key metrics: + - कुल प्रतिनिधिमंडल पुरस्कार + - Unrealized rewards + - Realized Rewards -पृष्ठ के दूसरे भाग में, आपके पास प्रतिनिधि तालिका है। यहां आप उन इंडेक्स को देख सकते हैं जिन्हें आपने प्रत्यायोजित किया है, साथ ही उनके विवरण (जैसे रिवॉर्ड कट, कूलडाउन, आदि)। +Bottom Section: -तालिका के दाईं ओर स्थित बटनों के साथ, आप अपने प्रतिनिधिमंडल का प्रबंधन कर सकते हैं - अधिक प्रतिनिधि, अप्रतिबंधित, या पिघलने की अवधि के बाद अपने प्रतिनिधिमंडल को वापस ले सकते हैं। +- Explore a table of your Indexer delegations, including reward cuts, cooldowns, and more. +- Use the buttons on the right side of the table to manage your delegation - delegate more, undelegate, or withdraw it after the thawing period. -ध्यान रखें कि यह चार्ट क्षैतिज रूप से स्क्रॉल करने योग्य है, इसलिए यदि आप दाईं ओर स्क्रॉल करते हैं, तो आप अपने प्रतिनिधिमंडल की स्थिति भी देख सकते हैं (प्रतिनिधि, अविभाजित, वापस लेने योग्य)। +> This table is horizontally scrollable, so scroll right to see delegation status: delegating, undelegating, or withdrawable. -![Explorer Image 13](/img/Delegation-Stats.png) +![Delegation Stats](/img/Delegation-Stats.png) -### क्यूरेटिंग टैब +#### क्यूरेटिंग टैब -In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. +The Curation tab displays all the Subgraphs you’re signaling on (thus enabling you to receive query fees). Signaling allows Curators to highlight to Indexers which Subgraphs are valuable and trustworthy, thus signaling that they need to be indexed on. इस टैब के भीतर, आपको इसका अवलोकन मिलेगा: @@ -232,22 +260,22 @@ In the Curation tab, you’ll find all the Subgraphs you’re signaling on (thus - Query rewards per Subgraph - दिनांक विवरण पर अद्यतन किया गया -![Explorer Image 14](/img/Curation-Stats.png) +![Curation Stats](/img/Curation-Stats.png) -### आपकी प्रोफ़ाइल सेटिंग्स +#### आपकी प्रोफ़ाइल सेटिंग्स अपने उपयोगकर्ता प्रोफ़ाइल के भीतर, आप अपने व्यक्तिगत प्रोफ़ाइल विवरण (जैसे ENS नाम सेट करना) प्रबंधित करने में सक्षम होंगे। यदि आप एक इंडेक्सर हैं, तो आपके पास अपनी उंगलियों पर सेटिंग्स तक और भी अधिक पहुंच है। अपने उपयोगकर्ता प्रोफ़ाइल में, आप अपने प्रतिनिधि पैरामीटर और ऑपरेटर सेट अप करने में सक्षम होंगे। - ऑपरेटर इंडेक्सर की ओर से प्रोटोकॉल में सीमित कार्रवाई करते हैं, जैसे आवंटन खोलना और बंद करना। ऑपरेटर आमतौर पर अन्य एथेरियम पते होते हैं, जो उनके स्टेकिंग वॉलेट से अलग होते हैं, नेटवर्क तक गेटेड एक्सेस के साथ जिसे इंडेक्सर्स व्यक्तिगत रूप से सेट कर सकते हैं - प्रत्यायोजन पैरामीटर की सहायता से आप अपने और अपने प्रतिनियुक्तियों के बीच GRT के वितरण को नियंत्रित कर सकते हैं. -![Explorer Image 15](/img/Profile-Settings.png) +![Profile Settings](/img/Profile-Settings.png) As your official portal into the world of decentralized data, Graph Explorer allows you to take a variety of actions, no matter your role in the network. You can get to your profile settings by opening the dropdown menu next to your address, then clicking on the Settings button. ![Wallet details](/img/Wallet-Details.png) -## Additional Resources +### Additional Resources ### वीडियो गाइड From da81dc129cc4078c7dabd49aff5da8d61ba93968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 16:59:56 -0400 Subject: [PATCH 0155/1709] New translations about.mdx (Romanian) --- website/src/pages/ro/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/ro/about.mdx b/website/src/pages/ro/about.mdx index 0c18db196d1b..5f554bbb18b1 100644 --- a/website/src/pages/ro/about.mdx +++ b/website/src/pages/ro/about.mdx @@ -1,67 +1,55 @@ --- -title: Despre The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## What is The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### What is The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) -The flow follows these steps: - -1. A dapp adds data to Ethereum through a transaction on a smart contract. -2. The smart contract emits one or more events while processing the transaction. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. The dapp queries the Graph Node for data indexed from the blockchain, using the node's [GraphQL endpoint](https://graphql.org/learn/). The Graph Node in turn translates the GraphQL queries into queries for its underlying data store in order to fetch this data, making use of the store's indexing capabilities. The dapp displays this data in a rich UI for end-users, which they use to issue new transactions on Ethereum. The cycle repeats. - ## Next Steps -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From bcf9398f1ccbe6c094fca28853726681fcf8e3e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 16:59:57 -0400 Subject: [PATCH 0156/1709] New translations about.mdx (French) --- website/src/pages/fr/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/fr/about.mdx b/website/src/pages/fr/about.mdx index 1cce1a4218ea..62fd8539f78b 100644 --- a/website/src/pages/fr/about.mdx +++ b/website/src/pages/fr/about.mdx @@ -1,67 +1,55 @@ --- -title: À propos de The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Qu’est-ce que The Graph ? +## Explanation -The Graph est un puissant protocole décentralisé qui permet d'interroger et d'indexer facilement les données de la blockchain. Il simplifie le processus complexe de requête des données blockchain, rendant ainsi le développement des applications décentralisées (dapps) plus rapide et plus simple. +### Qu’est-ce que The Graph ? -## Comprendre les fondamentaux +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Des projets dotés de contrats intelligents complexes tels que [Uniswap](https://uniswap.org/) et les initiatives NFT comme [Bored Ape Yacht Club](https://boredapeyachtclub.com/) stockent leurs données sur la blockchain Ethereum, rendant très difficile la lecture directe de données autres que les données de base depuis la blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Défis sans The Graph⁠ +### Why is Blockchain Data Hard to Query? -Dans le cas de l'exemple mentionné ci-dessus, Bored Ape Yacht Club, vous pouvez effectuer de simples opérations de lecture sur [le contrat](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). Vous pouvez voir le propriétaire d'un certain Ape, lire l'URI du contenu d'un Ape en fonction de son ID, ou connaître l'offre totale en circulation. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- Cela est possible car ces opérations de lecture sont programmées directement dans le contrat intelligent lui-même. Cependant, des requêtes et des opérations plus avancées, spécifiques et concrètes, telles que l'agrégation, la recherche, l'établissement de relations ou le filtrage complexe **ne sont pas possibles**. +## Solution -- Par exemple, si vous souhaitez identifier les Apes détenus par une adresse spécifique et affiner votre recherche en fonction d'une caractéristique particulière, il serait impossible d'obtenir cette information en interagissant directement avec le contrat. +### How The Graph Solves This -- Pour obtenir plus de données, vous devriez traiter chaque événement de [`transfert`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) jamais émis, lire les métadonnées d'IPFS en utilisant l'ID du Token et le hash IPFS, puis les agréger. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Pourquoi est-ce un problème ? +Each Subgraph defines: -Il faudrait des **heures, voire des jours,** pour qu'une application décentralisée (dapp) fonctionnant dans un navigateur obtienne une réponse à ces questions simples. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Les spécificités de la blockchain, comme la finalité des transactions, les réorganisations de chaîne et les blocs oncles (blocs rejetés lorsque deux blocs sont créés simultanément, ce qui entraîne l'omission d'un bloc de la blockchain.), ajoutent de la complexité au processus, rendant longue et conceptuellement difficile la récupération de résultats précis à partir des données de la blockchain. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph apporte une solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Aujourd'hui, il existe un protocole décentralisé soutenu par l'implémentation open source de [Graph Node](https://github.com/graphprotocol/graph-node) qui permet ce processus. +2. As the transaction is processed, the smart contract emits one or more events. -### Comment fonctionne The Graph⁠ +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Spécificités⁠ - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Un graphique expliquant comment The Graph utilise Graph Node pour répondre aux requêtes des consommateurs de données](/img/graph-dataflow.png) -La description des étapes du flux : - -1. Une dapp ajoute des données à Ethereum via une transaction sur un contrat intelligent. -2. Le contrat intelligent va alors produire un ou plusieurs événements lors du traitement de la transaction. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Le dapp interroge le Graph Node pour des données indexées à partir de la blockchain, à l'aide du [point de terminaison GraphQL](https://graphql.org/learn/) du noeud. À son tour, le Graph Node traduit les requêtes GraphQL en requêtes pour sa base de données sous-jacente afin de récupérer ces données, en exploitant les capacités d'indexation du magasin. Le dapp affiche ces données dans une interface utilisateur riche pour les utilisateurs finaux, qui s'en servent pour émettre de nouvelles transactions sur Ethereum. Le cycle se répète. - ## Les Étapes suivantes -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 6e32b8957f023971c05c47fd64d024ba75f8b533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 16:59:58 -0400 Subject: [PATCH 0157/1709] New translations about.mdx (Spanish) --- website/src/pages/es/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/es/about.mdx b/website/src/pages/es/about.mdx index ffa133b4e0b7..b04de3e51252 100644 --- a/website/src/pages/es/about.mdx +++ b/website/src/pages/es/about.mdx @@ -1,67 +1,55 @@ --- -title: Acerca de The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Que es The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Que es The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Un gráfico explicando como The Graph usa Graph Node para servir consultas a los consumidores de datos](/img/graph-dataflow.png) -El flujo sigue estos pasos: - -1. Una aplicación descentralizada (dapp) añade datos a Ethereum a través de una transacción en un contrato inteligente. -2. El contrato inteligente emite uno o más eventos mientras procesa la transacción. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. La dapp consulta a través de Graph Node los datos indexados de la blockchain, utilizando el [GraphQL endpoint](https://graphql.org/learn/) del nodo. El Nodo de The Graph, a su vez, traduce las consultas GraphQL en consultas para su almacenamiento de datos subyacentes con el fin de obtener estos datos, haciendo uso de las capacidades de indexación que ofrece el almacenamiento. La dapp muestra estos datos en una interfaz muy completa para el usuario, a fin de que los end users que usan este subgrafo puedan emitir nuevas transacciones en Ethereum. El ciclo se repite. - ## Próximos puntos -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From e57c75f3297056f2780863f37c387cc0e65d7c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 16:59:59 -0400 Subject: [PATCH 0158/1709] New translations about.mdx (Arabic) --- website/src/pages/ar/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/ar/about.mdx b/website/src/pages/ar/about.mdx index 93dbeb51f658..67d4ff9a90c2 100644 --- a/website/src/pages/ar/about.mdx +++ b/website/src/pages/ar/about.mdx @@ -1,67 +1,55 @@ --- -title: حول The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## What is The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### What is The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) -تدفق البيانات يتبع الخطوات التالية: - -1. A dapp adds data to Ethereum through a transaction on a smart contract. -2. العقد الذكي يصدر حدثا واحدا أو أكثر أثناء معالجة الإجراء. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. The dapp queries the Graph Node for data indexed from the blockchain, using the node's [GraphQL endpoint](https://graphql.org/learn/). The Graph Node in turn translates the GraphQL queries into queries for its underlying data store in order to fetch this data, making use of the store's indexing capabilities. The dapp displays this data in a rich UI for end-users, which they use to issue new transactions on Ethereum. The cycle repeats. - ## الخطوات التالية -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From bb1e1c7fd00b1c41370757f7cc406af7a0220115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:01 -0400 Subject: [PATCH 0159/1709] New translations about.mdx (Czech) --- website/src/pages/cs/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/cs/about.mdx b/website/src/pages/cs/about.mdx index 1f43c663437f..5766eb712d13 100644 --- a/website/src/pages/cs/about.mdx +++ b/website/src/pages/cs/about.mdx @@ -1,67 +1,55 @@ --- -title: O Grafu +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Co je Graf? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Co je Graf? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Grafu vysvětlující, jak Graf používá Uzel grafu k doručování dotazů konzumentům dat](/img/graph-dataflow.png) -Průběh se řídí těmito kroky: - -1. Dapp přidává data do Ethereum prostřednictvím transakce na chytrém kontraktu. -2. Chytrý smlouva vysílá při zpracování transakce jednu nebo více událostí. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Aplikace dapp se dotazuje grafického uzlu na data indexovaná z blockchainu pomocí [GraphQL endpoint](https://graphql.org/learn/). Uzel Grafu zase překládá dotazy GraphQL na dotazy pro své podkladové datové úložiště, aby tato data načetl, přičemž využívá indexovací schopnosti úložiště. Dapp tato data zobrazuje v bohatém UI pro koncové uživatele, kteří je používají k vydávání nových transakcí na platformě Ethereum. Cyklus se opakuje. - ## Další kroky -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From f2d9b6a3fae17ad73f86cc520443f409b7aea43a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:02 -0400 Subject: [PATCH 0160/1709] New translations about.mdx (German) --- website/src/pages/de/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/de/about.mdx b/website/src/pages/de/about.mdx index 30ff84ae06f0..ae3f0e5334af 100644 --- a/website/src/pages/de/about.mdx +++ b/website/src/pages/de/about.mdx @@ -1,67 +1,55 @@ --- -title: Über The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Was ist The Graph? +## Explanation -The Graph ist ein leistungsstarkes dezentrales Protokoll, das eine nahtlose Abfrage und Indizierung von Blockchain-Daten ermöglicht. Es vereinfacht den komplexen Prozess der Abfrage von Blockchain-Daten und macht die App-Entwicklung schneller und einfacher. +### Was ist The Graph? -## Grundlagen verstehen +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projekte mit komplexen Smart Contracts wie [Uniswap](https://uniswap.org/) und NFTs-Initiativen wie [Bored Ape Yacht Club](https://boredapeyachtclub.com/) speichern Daten auf der Ethereum-Blockchain, was es sehr schwierig macht, etwas anderes als grundlegende Daten direkt von der Blockchain zu lesen. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Herausforderungen ohne The Graph +### Why is Blockchain Data Hard to Query? -Im Fall des oben aufgeführten konkreten Beispiels, Bored Ape Yacht Club, können Sie grundlegende Leseoperationen auf [dem Vertrag](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code) durchführen. Sie können den Besitzer eines bestimmten Ape auslesen, die Inhalts-URI eines Ape anhand seiner ID lesen oder das Gesamtangebot auslesen. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- Dies ist möglich, da diese Lesevorgänge direkt in den Smart Contract selbst programmiert sind. Allerdings sind fortgeschrittene, spezifische und reale Abfragen und Operationen wie Aggregation, Suche, Beziehungen und nicht-triviale Filterung **nicht möglich**. +## Solution -- Wenn Sie sich beispielsweise nach Apes erkundigen möchten, die einer bestimmten Adresse gehören, und Ihre Suche anhand eines bestimmten Merkmals verfeinern möchten, können Sie diese Informationen nicht durch direkte Interaktion mit dem Vertrag selbst erhalten. +### How The Graph Solves This -- Um mehr Daten zu erhalten, müsste man jedes einzelne [`Übertragungsereignis`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746), das jemals gesendet wurde, verarbeiten, die Metadaten aus IPFS unter Verwendung der Token-ID und des IPFS-Hashs lesen und dann zusammenfassen. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Warum ist das ein Problem? +Each Subgraph defines: -Es würde **Stunden oder sogar Tage** dauern, bis eine dezentrale Anwendung (dapp), die in einem Browser läuft, eine Antwort auf diese einfachen Fragen erhält. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternativ können Sie einen eigenen Server einrichten, die Transaktionen verarbeiten, sie in einer Datenbank speichern und einen API-Endpunkt zur Abfrage der Daten erstellen. Diese Option ist jedoch [Ressourcen-intensiv](/resources/benefits/), muss gewartet werden, stellt einen Single Point of Failure dar und bricht wichtige Sicherheitseigenschaften, die für die Dezentralisierung erforderlich sind. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain-Eigenschaften wie Endgültigkeit, Umstrukturierung der Kette und nicht gesperrte Blöcke erhöhen die Komplexität des Prozesses und machen es zeitaufwändig und konzeptionell schwierig, genaue Abfrageergebnisse aus Blockchain-Daten zu erhalten. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph bietet eine Lösung +### Data Flow Overview -The Graph löst diese Herausforderung mit einem dezentralen Protokoll, das die Blockchain-Daten indiziert und eine effiziente und leistungsstarke Abfrage ermöglicht. Diese APIs (indizierte „Subgraphen“) können dann mit einer Standard-GraphQL-API abgefragt werden. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Heute gibt es ein dezentralisiertes Protokoll, das durch die Open-Source-Implementierung von [Graph Node](https://github.com/graphprotocol/graph-node) unterstützt wird und diesen Prozess ermöglicht. +2. As the transaction is processed, the smart contract emits one or more events. -### Die Funktionsweise von The Graph +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Die Indexierung von Blockchain-Daten ist sehr schwierig, aber The Graph macht es einfach. The Graph lernt, wie man Ethereum-Daten mit Hilfe von Subgraphen indizieren kann. Subgraphen sind benutzerdefinierte APIs, die auf Blockchain-Daten aufgebaut sind. Sie extrahieren Daten aus einer Blockchain, verarbeiten sie und speichern sie so, dass sie nahtlos über GraphQL abgefragt werden können. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Besonderheiten - -- The Graph verwendet Subgraph-Beschreibungen, die als Subgraph-Manifest innerhalb des Subgraphen bekannt sind. - -- Die Subgraph-Beschreibung beschreibt die Smart Contracts, die für einen Subgraphen von Interesse sind, die Ereignisse innerhalb dieser Verträge, auf die man sich konzentrieren soll, und wie man die Ereignisdaten den Daten zuordnet, die The Graph in seiner Datenbank speichern wird. - -- Wenn Sie einen Subgraphen erstellen, müssen Sie ein Subgraphenmanifest schreiben. - -- Nachdem Sie das `Subgraphenmanifest` geschrieben haben, können Sie das Graph CLI verwenden, um die Definition im IPFS zu speichern und einen Indexer anzuweisen, mit der Indizierung von Daten für diesen Subgraphen zu beginnen. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. Das nachstehende Diagramm enthält detailliertere Informationen über den Datenfluss, nachdem ein Subgraph-Manifest mit Ethereum-Transaktionen bereitgestellt wurde. ![Eine graphische Darstellung, die erklärt, wie The Graph Graph Node verwendet, um Abfragen an Datenkonsumenten zu stellen](/img/graph-dataflow.png) -Der Ablauf ist wie folgt: - -1. Eine Dapp fügt Ethereum durch eine Transaktion auf einem Smart Contract Daten hinzu. -2. Der Smart Contract gibt während der Verarbeitung der Transaktion ein oder mehrere Ereignisse aus. -3. Graph Node scannt Ethereum kontinuierlich nach neuen Blöcken und den darin enthaltenen Daten für Ihren Subgraph. -4. Graph Node findet in diesen Blöcken Ethereum-Ereignisse für Ihren Subgraph und führt die von Ihnen bereitgestellten Mapping-Handler aus. Das Mapping ist ein WASM-Modul, das die Dateneinheiten erstellt oder aktualisiert, die Graph Node als Reaktion auf Ethereum-Ereignisse speichert. -5. Die Dapp fragt den Graph Node über den [GraphQL-Endpunkt](https://graphql.org/learn/) des Knotens nach Daten ab, die von der Blockchain indiziert wurden. Der Graph Node wiederum übersetzt die GraphQL-Abfragen in Abfragen für seinen zugrundeliegenden Datenspeicher, um diese Daten abzurufen, wobei er die Indexierungsfunktionen des Speichers nutzt. Die Dapp zeigt diese Daten in einer reichhaltigen Benutzeroberfläche für die Endnutzer an, mit der diese dann neue Transaktionen auf Ethereum durchführen können. Der Zyklus wiederholt sich. - ## Nächste Schritte -In den folgenden Abschnitten werden die Subgraphen, ihr Einsatz und die Datenabfrage näher erläutert. - -Bevor Sie Ihren eigenen Subgraph schreiben, sollten Sie den [Graph Explorer](https://thegraph.com/explorer) erkunden und sich einige der bereits eingesetzten Subgraphen ansehen. Die Seite jedes Subgraphen enthält eine GraphQL-Spielwiese, mit der Sie seine Daten abfragen können. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From adfd58def0f7a25079a1969e370b3e5ab374bc31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:04 -0400 Subject: [PATCH 0161/1709] New translations about.mdx (Italian) --- website/src/pages/it/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/it/about.mdx b/website/src/pages/it/about.mdx index 62f0bf4d3c61..8fc32184b8fd 100644 --- a/website/src/pages/it/about.mdx +++ b/website/src/pages/it/about.mdx @@ -1,67 +1,55 @@ --- -title: Informazioni su The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Che cos'è The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Che cos'è The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Un grafico che spiega come The Graph utilizza Graph Node per servire le query ai consumatori di dati](/img/graph-dataflow.png) -Il flusso segue questi passi: - -1. Una dapp aggiunge dati a Ethereum attraverso una transazione su uno smart contract. -2. Lo smart contract emette uno o più eventi durante l'elaborazione della transazione. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. La dapp effettua query del Graph Node per ottenere dati indicizzati dalla blockchain, utilizzando il [ GraphQL endpoint del nodo](https://graphql.org/learn/). Il Graph Node a sua volta traduce le query GraphQL in query per il suo archivio dati sottostante, al fine di recuperare questi dati, sfruttando le capacità di indicizzazione dell'archivio. La dapp visualizza questi dati in una ricca interfaccia utente per gli utenti finali, che li utilizzano per emettere nuove transazioni su Ethereum. Il ciclo si ripete. - ## I prossimi passi -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 8981bcdc7a1ca244868c2e9dbad8dc776b76cf3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:05 -0400 Subject: [PATCH 0162/1709] New translations about.mdx (Japanese) --- website/src/pages/ja/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/ja/about.mdx b/website/src/pages/ja/about.mdx index b4462cd3c1c8..d1974b836c32 100644 --- a/website/src/pages/ja/about.mdx +++ b/website/src/pages/ja/about.mdx @@ -1,67 +1,55 @@ --- -title: The Graphについて +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## とは「ザ・グラフ」 +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### とは「ザ・グラフ」 -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![グラフがグラフ ノードを使用してデータ コンシューマーにクエリを提供する方法を説明する図](/img/graph-dataflow.png) -フローは以下のステップに従います。 - -1. Dapp は、スマート コントラクトのトランザクションを通じて Ethereum にデータを追加します。 -2. スマートコントラクトは、トランザクションの処理中に 1 つまたは複数のイベントを発行します。 -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Dapp は、ノードの [GraphQL エンドポイント](https://graphql.org/learn/) を使用して、ブロックチェーンからインデックス付けされたデータをグラフ ノードに照会します。グラフ ノードは、ストアのインデックス作成機能を利用して、このデータを取得するために、GraphQL クエリを基盤となるデータ ストアのクエリに変換します。 dapp は、このデータをエンドユーザー向けの豊富な UI に表示し、エンドユーザーはそれを使用して Ethereum で新しいトランザクションを発行します。サイクルが繰り返されます。 - ## 次のステップ -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 351859677e99861eca96109b08d152ee65175a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:07 -0400 Subject: [PATCH 0163/1709] New translations about.mdx (Korean) --- website/src/pages/ko/about.mdx | 64 ++++++++++++++-------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/website/src/pages/ko/about.mdx b/website/src/pages/ko/about.mdx index 833b097673d2..5f554bbb18b1 100644 --- a/website/src/pages/ko/about.mdx +++ b/website/src/pages/ko/about.mdx @@ -1,67 +1,55 @@ --- title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## What is The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### What is The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) -The flow follows these steps: - -1. A dapp adds data to Ethereum through a transaction on a smart contract. -2. The smart contract emits one or more events while processing the transaction. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. The dapp queries the Graph Node for data indexed from the blockchain, using the node's [GraphQL endpoint](https://graphql.org/learn/). The Graph Node in turn translates the GraphQL queries into queries for its underlying data store in order to fetch this data, making use of the store's indexing capabilities. The dapp displays this data in a rich UI for end-users, which they use to issue new transactions on Ethereum. The cycle repeats. - ## Next Steps -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From f4d15642d3dde5e21f2c90bd67b96af2016f7e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:08 -0400 Subject: [PATCH 0164/1709] New translations about.mdx (Dutch) --- website/src/pages/nl/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/nl/about.mdx b/website/src/pages/nl/about.mdx index 7fde3b3d507d..5f554bbb18b1 100644 --- a/website/src/pages/nl/about.mdx +++ b/website/src/pages/nl/about.mdx @@ -1,67 +1,55 @@ --- -title: Over The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## What is The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### What is The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) -The flow follows these steps: - -1. A dapp adds data to Ethereum through a transaction on a smart contract. -2. The smart contract emits one or more events while processing the transaction. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. The dapp queries the Graph Node for data indexed from the blockchain, using the node's [GraphQL endpoint](https://graphql.org/learn/). The Graph Node in turn translates the GraphQL queries into queries for its underlying data store in order to fetch this data, making use of the store's indexing capabilities. The dapp displays this data in a rich UI for end-users, which they use to issue new transactions on Ethereum. The cycle repeats. - ## Next Steps -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 69603384b4eb8268c6d830f0b1ba863786c375eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:09 -0400 Subject: [PATCH 0165/1709] New translations about.mdx (Polish) --- website/src/pages/pl/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/pl/about.mdx b/website/src/pages/pl/about.mdx index abfc28d9390b..61ba107f7b43 100644 --- a/website/src/pages/pl/about.mdx +++ b/website/src/pages/pl/about.mdx @@ -1,67 +1,55 @@ --- -title: Więcej o The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Co to jest The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Co to jest The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Grafika wyjaśniająca sposób w jaki protokół The Graph wykorzystuje węzeł Graph Node by obsługiwać zapytania dla konsumentów danych](/img/graph-dataflow.png) -Proces ten przebiega według poniższych kroków: - -1. Aplikacja dApp dodaje dane do sieci Ethereum za pomocą transakcji w smart kontrakcie. -2. Inteligentny kontrakt emituje jedno lub więcej zdarzeń podczas przetwarzania transakcji. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Aplikacja dApp wysyła zapytanie do węzła Graph Node o dane zindeksowane na blockchainie, korzystając z [punktu końcowego GraphQL](https://graphql.org/learn/). Węzeł Graph Node przekształca zapytania GraphQL na zapytania do swojego podstawowego magazynu danych w celu pobrania tych danych, wykorzystując zdolności indeksowania magazynu. Aplikacja dApp wyświetla te dane w interfejsie użytkownika dla użytkowników końcowych, którzy używają go do tworzenia nowych transakcji w sieci Ethereum. Cykl się powtarza. - ## Kolejne kroki -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From fb63e7dcf53474bc3f11537c484f14313343a51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:11 -0400 Subject: [PATCH 0166/1709] New translations about.mdx (Portuguese) --- website/src/pages/pt/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/pt/about.mdx b/website/src/pages/pt/about.mdx index 22d7582d014d..d77b0df8f8bc 100644 --- a/website/src/pages/pt/about.mdx +++ b/website/src/pages/pt/about.mdx @@ -1,67 +1,55 @@ --- -title: Sobre o The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## O que é o The Graph? +## Explanation -O The Graph é um protocolo descentralizado poderoso que permite a consulta e indexação rápida de dados em blockchain. Ele simplifica o processo complexo de queries de dados de blockchain, o que facilita e acelera a programação de dApps. +### O que é o The Graph? -## Entenda o Básico +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projetos com contratos inteligentes complexos, como o [Uniswap](https://uniswap.org/) e iniciativas de NFTs como o [Bored Ape Yacht Club](https://boredapeyachtclub.com/), armazenam dados na blockchain Ethereum, o que torna muito difícil ler qualquer coisa que não seja dados básicos diretamente da blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Desafios sem o The Graph +### Why is Blockchain Data Hard to Query? -No caso do exemplo listado acima, o Bored Ape Yacht Club, é possível realizar operações básicas [no contrato](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). Pode-se ver o dono de um certo Ape, ler a URI de um Ape com base na sua ID, ou ler a reserva total. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- Isto pode ser feito porque estas operações de leitura são programadas diretamente no próprio contrato inteligente. Porém, queries e operações mais avançadas e específicas do mundo real, como agregação, busca, relacionamentos e filtros não triviais, **não são possíveis**. +## Solution -- Por exemplo, se alguém quisesse ver Apes em posse de um endereço específico e refinar a sua busca com base numa característica particular, não seria possível obter aquela informação ao interagir diretamente com o próprio contrato. +### How The Graph Solves This -- Para conseguir mais dados, seria necessário processar todo evento de [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) emitido na história, ler os metadados do IPFS usando a ID e o hash IPFS do token, e depois agregá-los. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Por que isto é um problema? +Each Subgraph defines: -Levariam **horas, ou até mesmo dias**, para que um aplicativo descentralizado (dApp) executado em um navegador conseguisse uma resposta a estas questões simples. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Propriedades de blockchain, como finalidade, reorganizações de chain, ou blocos uncle, complicam ainda mais este processo, e não apenas o tornam longo e cansativo, mas dificultam conceitualmente a retirada de resultados precisos de queries dos dados da blockchain. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Providencia uma Solução +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Hoje, há um protocolo descentralizado apoiado pela implementação de código aberto do [Graph Node](https://github.com/graphprotocol/graph-node) que facilita este processo. +2. As the transaction is processed, the smart contract emits one or more events. -### Como o The Graph Funciona +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Especificações - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Um gráfico que explica como o The Graph utiliza Graph Nodes para servir queries para consumidores de dados](/img/graph-dataflow.png) -O fluxo segue estes passos: - -1. Um dApp adiciona dados à Ethereum através de uma transação em contrato inteligente. -2. O contrato inteligente emite um ou mais eventos enquanto processa a transação. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. O dApp consulta o Graph Node para dados indexados da blockchain, através do [endpoint GraphQL](https://graphql.org/learn/) do node. O Graph Node, por sua vez, traduz os queries GraphQL em queries para o seu armazenamento subjacente de dados para poder retirar estes dados, com o uso das capacidades de indexação do armazenamento. O dApp exibe estes dados em uma interface rica para utilizadores finais, que eles usam para emitir novas transações na Ethereum. E o ciclo se repete. - ## Próximos Passos -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 62854c9dceb52e507ac8ce113c01a1f2c6bc9e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:12 -0400 Subject: [PATCH 0167/1709] New translations about.mdx (Russian) --- website/src/pages/ru/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/ru/about.mdx b/website/src/pages/ru/about.mdx index d940c455bdf7..f6ce5dcfc2ec 100644 --- a/website/src/pages/ru/about.mdx +++ b/website/src/pages/ru/about.mdx @@ -1,67 +1,55 @@ --- -title: О The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Что такое Graph? +## Explanation -The Graph — это мощный децентрализованный протокол, который позволяет беспрепятственно запрашивать и индексировать данные блокчейна. Это упрощает сложный процесс запроса данных блокчейна, ускоряя и упрощая разработку децентрализованных приложений. +### Что такое Graph? -## Понимание основ +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Проекты со сложными смарт-контрактами, такие как [Uniswap](https://uniswap.org/), и инициативы по созданию NFT, подобные [Bored Ape Yacht Club](https://boredapeyachtclub.com/), хранят данные в блокчейне Ethereum, что делает практически невозможным непосредственное чтение чего-либо, кроме базовых данных, из блокчейна. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Сложности, которые могут возникнуть без использования The Graph +### Why is Blockchain Data Hard to Query? -В приведенном выше примере, Bored Ape Yacht Club, Вы можете выполнять базовые операции чтения [контракта](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). Вы можете узнать владельца определенного Ape, прочитать URI контента Ape на основе его идентификатора или узнать общее предложение. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- Это можно сделать, поскольку данные операции чтения запрограммированы непосредственно в самом смарт-контракте. Однако более сложные, конкретные и реальные запросы и операции, такие как агрегирование, поиск, связи и нетривиальная фильтрация, **невозможны**. +## Solution -- Например, если Вы хотите узнать об Apes, принадлежащих определенному адресу, и уточнить свой поиск на основе конкретной характеристики, Вы не сможете получить эту информацию путем прямого взаимодействия с самим контрактом. +### How The Graph Solves This -- Чтобы получить больше данных, Вам придется обработать каждое когда-либо созданное событие [`передачи`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746), прочитать метаданные из IPFS, используя идентификатор токена и хэш IPFS, а затем агрегировать их. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Почему это является проблемой? +Each Subgraph defines: -Децентрализованному приложению (dapp), запущенному в браузере, потребуются **часы или даже дни**, чтобы получить ответ на эти простые вопросы. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -В качестве альтернативы у Вас есть возможность настроить собственный сервер, обрабатывать транзакции, хранить их в базе данных и создать конечную точку API для запроса данных. Однако этот вариант [ресурсоемок](/resources/benefits/), требует обслуживания, создает единую точку отказа и нарушает важные требования безопасности, необходимые для децентрализации. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Такие свойства блокчейна, как окончательность, реорганизация чейна и необработанные блоки, усложняют процесс, делая получение точных результатов запроса из данных блокчейна трудоемким и концептуально сложным. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph предлагает решение +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Сегодня существует децентрализованный протокол, поддерживаемый реализацией с открытым исходным кодом [Graph Node](https://github.com/graphprotocol/graph-node), который обеспечивает этот процесс. +2. As the transaction is processed, the smart contract emits one or more events. -### Как функционирует The Graph +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Специфические особенности - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![График, объясняющий потребителям данных, как The Graph использует Graph Node для обслуживания запросов](/img/graph-dataflow.png) -Данные проходят следующий путь: - -1. Dapp добавляет данные в Ethereum через транзакцию в смарт-контракте. -2. Смарт-контракт генерирует одно или несколько событий во время обработки транзакции. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Dapp запрашивает у Graph Node данные, проиндексированные с блокчейна, используя [конечную точку GraphQL](https://graphql.org/learn/) ноды. В свою очередь, Graph Node переводит запросы GraphQL в запросы к его базовому хранилищу данных, чтобы получить эти данные, используя возможности индексации этого хранилища. Dapp отображает эти данные в насыщенном пользовательском интерфейсе для конечных пользователей, который они используют для создания новых транзакций в Ethereum. Цикл повторяется. - ## Что далее -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From e284094b44aa5ae63011fcc93a6fcb134bebea4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:14 -0400 Subject: [PATCH 0168/1709] New translations about.mdx (Swedish) --- website/src/pages/sv/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/sv/about.mdx b/website/src/pages/sv/about.mdx index 8f3ae9f1a8e7..0107ba23af82 100644 --- a/website/src/pages/sv/about.mdx +++ b/website/src/pages/sv/about.mdx @@ -1,67 +1,55 @@ --- -title: Om The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Vad är The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Vad är The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![En grafik som förklarar hur The Graf använder Graf Node för att servera frågor till datakonsumenter](/img/graph-dataflow.png) -Följande steg följs: - -1. En dapp lägger till data i Ethereum genom en transaktion på ett smart kontrakt. -2. Det smarta kontraktet sänder ut en eller flera händelser under bearbetningen av transaktionen. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Dappen frågar Graph Node om data som indexerats från blockkedjan med hjälp av nodens [GraphQL-slutpunkt](https://graphql.org/learn/). Graph Node översätter i sin tur GraphQL-frågorna till frågor för sin underliggande datalagring för att hämta dessa data, och använder lagrets indexeringsegenskaper. Dappen visar dessa data i ett användarvänligt gränssnitt för slutanvändare, som de använder för att utfärda nya transaktioner på Ethereum. Cykeln upprepas. - ## Nästa steg -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 59e213015b8c1db97e2e12515417d93ba1c26a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:15 -0400 Subject: [PATCH 0169/1709] New translations about.mdx (Turkish) --- website/src/pages/tr/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/tr/about.mdx b/website/src/pages/tr/about.mdx index 3b1dce5a5617..3a45ddfae492 100644 --- a/website/src/pages/tr/about.mdx +++ b/website/src/pages/tr/about.mdx @@ -1,67 +1,55 @@ --- -title: Graph Hakkında +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## The Graph Nedir? +## Explanation -The Graph, blokzinciri verilerinin pürüzsüz bir şekilde sorgulanmasını ve endekslenmesini sağlayan güçlü bir merkeziyetsiz protokoldür. Blokzinciri verilerini sorgulama sürecini basitleştirerek merkeziyetsiz uygulama (dapp) geliştirmeyi daha hızlı ve daha kolay hale getirir. +### The Graph Nedir? -## Temeller +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Karmaşık akıllı sözleşmelere sahip [Uniswap](https://uniswap.org/) gibi projeler ve [Bored Ape Yacht Club](https://boredapeyachtclub.com/) gibi NFT girişimleri Ethereum blokzinciri üzerinde veri depolar. Bu akıllı sözleşmelerin karmaşık doğası, temel verilerin ötesinde herhangi bir şeyin doğrudan blokzincirinden okunmasını ciddi derecede zorlaştırır. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### The Graph Olmadığında Karşılaşılan Zorluklar +### Why is Blockchain Data Hard to Query? -Yukarıda bahsedilen Bored Ape Yacht Club örneğinde, [sözleşmenin](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code) okuma fonksiyonlarını kullanarak temel veri sorgulama işlemleri gerçekleştirebilirsiniz. Belirli bir Ape'in sahibini, ID numarasına göre Ape'in içerik URI'sini, ya da toplam arzı sorgulayabilirsiniz. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- Bu işlemler, okuma fonksiyonlarının doğrudan akıllı sözleşmeye kodlanmış olması sayesinde mümkündür. Ancak agregasyon, arama, ilişkisel veriler ve daha karmaşık filtrelemeler ile birlikte daha ileri düzey, spesifik ve gerçek dünyada karşılaşılan işlemlerin doğrudan akıllı sözleşmeler üzerinden yapılması **mümkün değildir**. +## Solution -- Örneğin, belirli bir adresin sahip olduğu Ape'leri sorgulamak ve aramanızı belirli bir özelliğe göre daraltmak isterseniz, bu bilgiyi doğrudan sözleşme ile etkileşime girerek elde edemezsiniz. +### How The Graph Solves This -- Daha fazla veri elde etmek için, şimdiye kadar yayımlanmış her bir [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) olayını işlemek, Token ID ve IPFS hash'ini kullanarak metaveriyi IPFS'ten okumak ve ardından bunları bir araya getirmeniz gerekir. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Bu neden bir sorun? +Each Subgraph defines: -Bu basit sorulara yanıt almak, tarayıcıda çalışan bir merkeziyetsiz uygulama (dapp) için **saatler, hatta günler ** sürebilir. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Finalite, zincir yeniden organizasyonu ve "uncle" bloklar gibi blokzinciri özellikleri, sürece karmaşıklık katar ve doğru sorgu sonuçlarını blokzinciri verilerinden elde etmeyi zaman alıcı hale getirip kavramsal olarak zorlaştırır. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph'in Sağladığı Çözüm +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Artık, bu süreci mümkün kılan, [Graph Düğümü](https://github.com/graphprotocol/graph-node)'nün açık kaynaklı implementasyonuna dayanan merkeziyetsiz bir protokol mevcut. +2. As the transaction is processed, the smart contract emits one or more events. -### The Graph'in Çalışma Şekli +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Ayrıntılar - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![The Graph'in, Graph Düğümü'nü kullanarak veri tüketicilerine sorgu sunma sürecini açıklayan bir grafik](/img/graph-dataflow.png) -Veri akışı şu şekildedir: - -1. Bir dapp, bir akıllı sözleşme üzerinde işlem yaparak Ethereum'a veri ekler. -2. Akıllı sözleşme, işlemi işlerken bir veya daha fazla olay yayımlar. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Dapp, blokzincirinden endekslenen veriler için Graph Düğümüne, düğümün [GraphQL uç noktası](https://graphql.org/learn/) üzerinden sorgu gönderir. Graph Düğümü ise veriyi getirmek için bu sorguları kendi veri deposuna yönelik sorgulara çevirir ve depolama sisteminin endeksleme kabiliyetlerini kullanarak bu verileri alır. Dapp, bu verileri son kullanıcılar için zengin bir arayüzde gösterir ve kullanıcılar bu arayüzü kullanarak Ethereum'da yeni işlemler gerçekleştirir. Bu döngü tekrarlanır. - ## Sonraki Adımlar -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From a588a99d6a69a72842674241d40a73b3ea868ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:17 -0400 Subject: [PATCH 0170/1709] New translations about.mdx (Ukrainian) --- website/src/pages/uk/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/uk/about.mdx b/website/src/pages/uk/about.mdx index 55eb5593f48b..523dfadf84ea 100644 --- a/website/src/pages/uk/about.mdx +++ b/website/src/pages/uk/about.mdx @@ -1,67 +1,55 @@ --- -title: Про The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## Що таке The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### Що таке The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![Малюнок, що пояснює, як The Graph використовує Graph Node для обслуговування запитів до споживачів даних](/img/graph-dataflow.png) -Цей потік даних проходить такі етапи: - -1. Додаток відправляє дані в мережу Ethereum через транзакцію в смартконтракті. -2. Під час обробки транзакції смартконтракт видає одну або декілька різних подій. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. Додаток запитує Graph Node про дані, проіндексовані в блокчейні, використовуючи [кінцеву точку GraphQL](https://graphql.org/learn/). The Graph Node, і собі, переводить запити GraphQL в запити до свого базового сховища даних, щоб отримати ці дані, використовуючи можливості індексації сховища. Dapp відображає ці дані в величезному інтерфейсі для кінцевих користувачів, який вони використовують для створення нових транзакцій на Ethereum. Цикл повторюється. - ## Наступні кроки -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 43a5fc8fbaee35ab2b2bfd72e85ef2cd878b283b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:18 -0400 Subject: [PATCH 0171/1709] New translations about.mdx (Chinese Simplified) --- website/src/pages/zh/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/zh/about.mdx b/website/src/pages/zh/about.mdx index df1778ca8c0b..97d5bda63989 100644 --- a/website/src/pages/zh/about.mdx +++ b/website/src/pages/zh/about.mdx @@ -1,67 +1,55 @@ --- -title: 关于 The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## 什么是 The Graph? +## Explanation -The Graph是一个强大的去中心化协议,可以无缝地查询区块链数据并将其索引。 它简化了查询区块链数据的复杂过程,使开发dapp 更快和更容易。 +### 什么是 The Graph? -## 了解基础知识 +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -像 [Uniswap](https://uniswap.org/)这样具有复杂智能合约的项目,以及像 [Bored Ape Yacht Club](https://boredapeyachtclub.com/) 这样的 NFTs 倡议,都在以太坊区块链上存储数据,因此,除了直接从区块链上读取基本数据外,真的很难。 +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### 没有The Graph的挑战 +### Why is Blockchain Data Hard to Query? -在上面列出的例子中,Bored Ape Yacht Club,您可以在 [合约](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code)上进行基本的读取操作。 您可以读取某个Ape的所有者。根据他们的ID阅读Ape的内容URI,或者阅读总供应。 +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- 之所以能够做到这一点,是因为这些已阅读的操作直接编入智能合约本身。 然而,更高级、具体和现实世界的查询和操作,如集成、搜索、关系和非微不足道的过滤, **是不可能的**。 +## Solution -- 例如,如果您想要查询某个特定地址所拥有的Ape,并根据某个特定特征改进您的搜索, 你无法通过与合约本身直接互动获取这种信息。 +### How The Graph Solves This -- 为了获得这些数据,你必须处理曾经发出的每一个 [`传输`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) 事件,使用Token ID和IPFS的哈希值从IPFS读取元数据,然后将其汇总。 +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### 为什么这是个问题? +Each Subgraph defines: -在浏览器中运行的去中心化应用程序(dapp)需要**几小时甚至几天**才能得到这些简单问题的答案。 +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -你也可以建立你自己的服务器,在那里处理交易,把它们保存到数据库,并在上面建立一个 API 终端,以便查询数据。 然而,这种选择是[资源密集型的](/resources/benefits/),需要维护,会出现单点故障,并破坏了去中心化化所需的重要安全属性。 +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -区块链的属性,如最终性、链重组或未封闭的区块,使这一过程进一步复杂化,并使从区块链数据中检索出正确查询结果不仅耗时,而且在概念上也很难。 +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph提供了一个解决办法 +### Data Flow Overview -The Graph通过一个去中心化的协议解决了这个挑战,这个协议可以索引并使区块链数据能够高效和高性能的查询。 这些API(索引的 "Subgraphs") 然后可以用标准的 GraphQL API查询。 +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -今天有一个去中心化的协议,它得到了 [Graph Node](https://github.com/graphprotocol/graph-node) 开放源代码实现的支持。 +2. As the transaction is processed, the smart contract emits one or more events. -### The Graph 如何起效 +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -索引区块链数据是非常困难的,但是The Graph使它变得容易。The Graph通过子图学习如何索引以太坊数据。 子图是基于 blockchain 数据从区块链中提取数据的自定义 API, 处理它,并存储它,以便它可以通过 GraphQL 无缝查询。 +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### 详情 - -- The Graph使用子图描述,它称为子图中的子图清单。 - -- 子图描述定义了子图所关注的智能合约,这些合约中需要关注的事件,以及如何将事件数据映射到The Graph将存储在其数据库中的数据。 - -- 创建子图时,您需要写子图清单。 - -- 一旦编写了`子图清单`,就可以使用Graph CLI将定义存储在IPFS中,并告诉索引人开始为该子图的数据编制索引。 +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. 此图提供了部署子图清单后用于处理以太坊交易的数据流的更多细节。 ![解释The Graph如何使用Graph节点向数据消费者提供查询的图形。](/img/graph-dataflow.png) -流程遵循这些步骤: - -1. 一个去中心化的应用程序通过智能合约上的交易向以太坊添加数据。 -2. 智能合约在处理交易时,会发出一个或多个事件。 -3. Graph 节点不断扫描以太坊的新区块和它们可能包含的子图的数据。 -4. Graph 节点在这些区块中为你的子图找到以太坊事件并运行你提供的映射处理程序。 映射是一个 WASM 模块,它创建或更新 Graph 节点存储的数据实体,以响应以太坊事件。 -5. 去中心化的应用程序使用Graph节点的[GraphQL 端点](https://graphql.org/learn/),从区块链的索引中查询 Graph 节点的数据。 Graph 节点反过来将 GraphQL 查询转化为对其底层数据存储的查询,以便利用存储的索引功能来获取这些数据。 去中心化的应用程序在一个丰富的用户界面中为终端用户显示这些数据,他们用这些数据在以太坊上发行新的交易。 就这样周而复始。 - ## 下一步 -以下各节更深入地审视了子图、其部署情况和数据查询情况。 - -在编写自己的子图之前,建议您探索[Graph Explorer](https://thegraph.com/explorer)并查看一些已经部署的子图。每个Subgraph的页面都包含一个GraphQL游乐场,允许您查询其数据。 +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 8d8b338127d2e999bfdbd4d3a273b70040bb9b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:19 -0400 Subject: [PATCH 0172/1709] New translations about.mdx (Urdu (Pakistan)) --- website/src/pages/ur/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/ur/about.mdx b/website/src/pages/ur/about.mdx index d737a0994ad9..99b8b2874d2a 100644 --- a/website/src/pages/ur/about.mdx +++ b/website/src/pages/ur/about.mdx @@ -1,67 +1,55 @@ --- -title: گراف کے بارے میں +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## گراف کیا ہے؟ +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### گراف کیا ہے؟ -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![ایک گرافک یہ بتاتا ہے کہ گراف کس طرح ڈیٹا صارفین کو کیوریز پیش کرنے کے لیے گراف نوڈ کا استعمال کرتا ہے](/img/graph-dataflow.png) -بہاؤ ان مراحل کی پیروی کرتا ہے: - -1. ایک ڈیپ سمارٹ کنٹریکٹ پر ٹرانزیکشن کے ذریعے سے ایتھیریم میں ڈیٹا کا اضافہ کرتی ہے. -2. سمارٹ کنٹریکٹ ٹرانزیکشن پر کارروائی کے دوران ایک یا ایک سے زیادہ واقعات کا اخراج کرتا ہے. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. ڈیپ بلاکچین سے انڈیکس کردہ ڈیٹا کے لیے گراف نوڈ کو کیوری کرتی ہے, نوڈ کے [GraphQL اینڈ پوائنٹ](https://graphql.org/learn/) کا استعمال کرتے ہوئے. گراف نوڈ بدلے میں اس ڈیٹا کو حاصل کرنے کے لیے GraphQL کی کیوریز کو اپنے بنیادی ڈیٹا اسٹور کی کیوریز میں تبدیل کرتا ہے, سٹور کی انڈیکسنگ کی صلاحیتوں کا استعمال کرتے ہوئے. ڈیسینٹرلائزڈ ایپلیکیشن اس ڈیٹا کو صارفین کے لیے ایک بھرپور UI میں دکھاتی ہے, جسے وہ ایتھیریم پر نئی ٹرانزیکشنز جاری کرنے کے لیے استعمال کرتے ہیں. یہ سلسلہ دہرایا جاتا ہے. - ## اگلے مراحل -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 32bdc564e3f6acec98877721c3051de009d0507d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:21 -0400 Subject: [PATCH 0173/1709] New translations about.mdx (Vietnamese) --- website/src/pages/vi/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/vi/about.mdx b/website/src/pages/vi/about.mdx index dbcf77b348c9..78da571b8c29 100644 --- a/website/src/pages/vi/about.mdx +++ b/website/src/pages/vi/about.mdx @@ -1,67 +1,55 @@ --- -title: Về The Graph +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## What is The Graph? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### What is The Graph? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) -Quy trình thực hiện theo các bước sau: - -1. A dapp adds data to Ethereum through a transaction on a smart contract. -2. Hợp đồng thông minh phát ra một hoặc nhiều sự kiện trong khi xử lý giao dịch. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. The dapp queries the Graph Node for data indexed from the blockchain, using the node's [GraphQL endpoint](https://graphql.org/learn/). The Graph Node in turn translates the GraphQL queries into queries for its underlying data store in order to fetch this data, making use of the store's indexing capabilities. The dapp displays this data in a rich UI for end-users, which they use to issue new transactions on Ethereum. The cycle repeats. - ## Bước tiếp theo -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 11ae5ce1b213787909454704f77278fcfcea328d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:22 -0400 Subject: [PATCH 0174/1709] New translations about.mdx (Marathi) --- website/src/pages/mr/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/mr/about.mdx b/website/src/pages/mr/about.mdx index 9597ecb03bb2..a8534ea1d258 100644 --- a/website/src/pages/mr/about.mdx +++ b/website/src/pages/mr/about.mdx @@ -1,67 +1,55 @@ --- -title: ग्राफ बद्दल +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## द ग्राफ म्हणजे काय? +## Explanation -The Graph is a powerful decentralized protocol that enables seamless querying and indexing of blockchain data. It simplifies the complex process of querying blockchain data, making dapp development faster and easier. +### द ग्राफ म्हणजे काय? -## Understanding the Basics +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -Projects with complex smart contracts such as [Uniswap](https://uniswap.org/) and NFTs initiatives like [Bored Ape Yacht Club](https://boredapeyachtclub.com/) store data on the Ethereum blockchain, making it very difficult to read anything other than basic data directly from the blockchain. +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### Challenges Without The Graph +### Why is Blockchain Data Hard to Query? -In the case of the example listed above, Bored Ape Yacht Club, you can perform basic read operations on [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code). You can read the owner of a certain Ape, read the content URI of an Ape based on their ID, or read the total supply. +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- This can be done because these read operations are programmed directly into the smart contract itself. However, more advanced, specific, and real-world queries and operations like aggregation, search, relationships, and non-trivial filtering, **are not possible**. +## Solution -- For instance, if you want to inquire about Apes owned by a specific address and refine your search based on a particular characteristic, you would not be able to obtain that information by directly interacting with the contract itself. +### How The Graph Solves This -- To get more data, you would have to process every single [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) event ever emitted, read the metadata from IPFS using the Token ID and IPFS hash, and then aggregate it. +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### Why is this a problem? +Each Subgraph defines: -It would take **hours or even days** for a decentralized application (dapp) running in a browser to get an answer to these simple questions. +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -Blockchain properties, such as finality, chain reorganizations, and uncled blocks, add complexity to the process, making it time-consuming and conceptually challenging to retrieve accurate query results from blockchain data. +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph Provides a Solution +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -Today, there is a decentralized protocol that is backed by the open source implementation of [Graph Node](https://github.com/graphprotocol/graph-node) that enables this process. +2. As the transaction is processed, the smart contract emits one or more events. -### How The Graph Functions +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### Specifics - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![ग्राफिक डेटा ग्राहकांना प्रश्न देण्यासाठी ग्राफ नोड कसा वापरतो हे स्पष्ट करणारे ग्राफिक](/img/graph-dataflow.png) -प्रवाह या चरणांचे अनुसरण करतो: - -1. A dapp स्मार्ट करारावरील व्यवहाराद्वारे इथरियममध्ये डेटा जोडते. -2. व्यवहारावर प्रक्रिया करताना स्मार्ट करार एक किंवा अधिक इव्हेंट सोडतो. -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. नोडचा [GraphQL एंडपॉइंट](https://graphql.org/learn/) वापरून ब्लॉकचेन वरून अनुक्रमित केलेल्या डेटासाठी dapp ग्राफ नोडची क्वेरी करते. ग्राफ नोड यामधून, स्टोअरच्या इंडेक्सिंग क्षमतांचा वापर करून, हा डेटा मिळविण्यासाठी त्याच्या अंतर्निहित डेटा स्टोअरच्या क्वेरींमध्ये GraphQL क्वेरीचे भाषांतर करतो. dapp हा डेटा अंतिम वापरकर्त्यांसाठी समृद्ध UI मध्ये प्रदर्शित करते, जो ते Ethereum वर नवीन व्यवहार जारी करण्यासाठी वापरतात. चक्राची पुनरावृत्ती होते. - ## पुढील पायऱ्या -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From f10559a9aa1ee6217433306c7db2afb3677e422f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:23 -0400 Subject: [PATCH 0175/1709] New translations about.mdx (Hindi) --- website/src/pages/hi/about.mdx | 66 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/website/src/pages/hi/about.mdx b/website/src/pages/hi/about.mdx index 98bf7a76374e..c4676efea513 100644 --- a/website/src/pages/hi/about.mdx +++ b/website/src/pages/hi/about.mdx @@ -1,67 +1,55 @@ --- -title: The Graph के बारे में +title: About The Graph +description: This page summarizes the core concepts and basics of The Graph Network. --- -## The Graph क्या है? +## Explanation -The Graph एक शक्तिशाली विकेंद्रीकृत प्रोटोकॉल है जो ब्लॉकचेन डेटा को आसानी से क्वेरी और इंडेक्स करने में सक्षम बनाता है। यह ब्लॉकचेन डेटा को क्वेरी करने की जटिल प्रक्रिया को सरल बनाता है, जिससे डैप विकास तेज और आसान हो जाता है। +### The Graph क्या है? -## मूल बातें समझना +The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). -जटिल स्मार्ट कॉन्ट्रैक्ट्स वाले प्रोजेक्ट्स, जैसे [Uniswap](https://uniswap.org/) और NFT इनिशिएटिव्स जैसे [Bored Ape Yacht Club](https://boredapeyachtclub.com/), डेटा को एथेरियम ब्लॉकचेन पर स्टोर करते हैं, जिससे ब्लॉकचेन से सीधे मूलभूत डेटा के अलावा किसी अन्य जानकारी को पढ़ना बहुत कठिन हो जाता है। +The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. -### The Graph के बिना चुनौतियाँ +### Why is Blockchain Data Hard to Query? -उदाहरण के रूप में, Bored Ape Yacht Club के मामले में, आप [the contract](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code) पर बुनियादी रीड ऑपरेशन कर सकते हैं। आप किसी विशेष एपी के मालिक को पढ़ सकते हैं, एपी के ID के आधार पर कंटेंट URI पढ़ सकते हैं, या कुल आपूर्ति को पढ़ सकते हैं। +Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. -- यह संभव है क्योंकि ये पढ़ाई संचालन सीधे स्मार्ट कॉन्ट्रैक्ट में प्रोग्राम किए गए हैं। हालांकि, अधिक उन्नत, विशिष्ट और वास्तविक दुनिया की क्वेरीज़ और संचालन जैसे कि एग्रीगेशन, सर्च, रिलेशनशिप, और जटिल फ़िल्टरिंग, **संभव नहीं हैं**। +## Solution -- उदाहरण के लिए, यदि आप किसी विशेष पते द्वारा स्वामित्व वाले Apes के बारे में पूछताछ करना चाहते हैं और किसी विशेष विशेषता के आधार पर अपनी खोज को परिष्कृत करना चाहते हैं, तो आप यह जानकारी सीधे कॉन्ट्रैक्ट के साथ बातचीत करके प्राप्त नहीं कर पाएंगे। +### How The Graph Solves This -- ज्यादा डेटा प्राप्त करने के लिए, आपको हर एक [`transfer`](https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d#code#L1746) इवेंट को प्रोसेस करना होगा, IPFS से Token ID और IPFS हैश का उपयोग करके मेटाडेटा पढ़ना होगा, और फिर उसे संक्षिप्त करना होगा। +The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. -### यह एक समस्या क्यों है? +Each Subgraph defines: -यह सरल सवालों का जवाब पाने में एक ब्राउज़र में चल रही एक विकेन्द्रीकृत एप्लिकेशन (dapp) को **घंटे या यहाँ तक कि दिन** लग सकते हैं। +- Which smart contracts to watch +- Which events to extract +- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) -Alternatively, you have the option to set up your own server, process the transactions, store them in a database, and create an API endpoint to query the data. However, this option is [resource intensive](/resources/benefits/), needs maintenance, presents a single point of failure, and breaks important security properties required for decentralization. +### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) -ब्लॉकचेन की विशेषताएँ, जैसे अंतिमता, चेन पुनर्गठन, और अंकल ब्लॉक्स, प्रक्रिया में जटिलता जोड़ती हैं, जिससे ब्लॉकचेन डेटा से सटीक क्वेरी परिणाम प्राप्त करना समय लेने वाला और अवधारणात्मक रूप से चुनौतीपूर्ण हो जाता है। +1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. +2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. +3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. +4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). -## The Graph एक समाधान प्रदान करता है +### Data Flow Overview -The Graph solves this challenge with a decentralized protocol that indexes and enables the efficient and high-performance querying of blockchain data. These APIs (indexed "Subgraphs") can then be queried with a standard GraphQL API. +1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. -आज एक विकेंद्रीकृत प्रोटोकॉल है, जो [Graph Node](https://github.com/graphprotocol/graph-node) के ओपन सोर्स इम्प्लीमेंटेशन द्वारा समर्थित है, जो इस प्रक्रिया को सक्षम बनाता है। +2. As the transaction is processed, the smart contract emits one or more events. -### The Graph कैसे काम करता है +3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. -Indexing blockchain data is very difficult, but The Graph makes it easy. The Graph learns how to index Ethereum data by using Subgraphs. Subgraphs are custom APIs built on blockchain data that extract data from a blockchain, processes it, and stores it so that it can be seamlessly queried via GraphQL. +4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. -#### विशिष्टताएँ - -- The Graph uses Subgraph descriptions, which are known as the Subgraph manifest inside the Subgraph. - -- The Subgraph description outlines the smart contracts of interest for a Subgraph, the events within those contracts to focus on, and how to map event data to the data that The Graph will store in its database. - -- When creating a Subgraph, you need to write a Subgraph manifest. - -- After writing the `subgraph manifest`, you can use the Graph CLI to store the definition in IPFS and instruct an Indexer to start indexing data for that Subgraph. +5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. ![एक ग्राफ़िक समझाता है कि कैसे ग्राफ़ डेटा उपभोक्ताओं को क्वेरीज़ प्रदान करने के लिए ग्राफ़ नोड का उपयोग करता है](/img/graph-dataflow.png) -प्रवाह इन चरणों का पालन करता है: - -1. एक विकेंद्रीकृत एप्लिकेशन स्मार्ट अनुबंध पर लेनदेन के माध्यम से एथेरियम में डेटा जोड़ता है। -2. लेन-देन संसाधित करते समय स्मार्ट अनुबंध एक या अधिक घटनाओं का उत्सर्जन करता है। -3. Graph Node continually scans Ethereum for new blocks and the data for your Subgraph they may contain. -4. Graph Node finds Ethereum events for your Subgraph in these blocks and runs the mapping handlers you provided. The mapping is a WASM module that creates or updates the data entities that Graph Node stores in response to Ethereum events. -5. नोड के [GraphQL समापन बिंदु](https://graphql.org/learn/) का उपयोग करते हुए, विकेन्द्रीकृत एप्लिकेशन ब्लॉकचैन से अनुक्रमित डेटा के लिए ग्राफ़ नोड से पूछताछ करता है। ग्राफ़ नोड बदले में इस डेटा को प्राप्त करने के लिए, स्टोर की इंडेक्सिंग क्षमताओं का उपयोग करते हुए, अपने अंतर्निहित डेटा स्टोर के लिए ग्राफ़कॉल प्रश्नों का अनुवाद करता है। विकेंद्रीकृत एप्लिकेशन इस डेटा को एंड-यूजर्स के लिए एक समृद्ध यूआई में प्रदर्शित करता है, जिसका उपयोग वे एथेरियम पर नए लेनदेन जारी करने के लिए करते हैं। चक्र दोहराता है। - ## अगले कदम -The following sections provide a more in-depth look at Subgraphs, their deployment and data querying. - -Before you write your own Subgraph, it's recommended to explore [Graph Explorer](https://thegraph.com/explorer) and review some of the already deployed Subgraphs. Each Subgraph's page includes a GraphQL playground, allowing you to query its data. +Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. From 4e7f904e4cb902e1ad67f54643cfacc1b430e494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:25 -0400 Subject: [PATCH 0176/1709] New translations tap.mdx (German) --- website/src/pages/de/indexing/tap.mdx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/de/indexing/tap.mdx b/website/src/pages/de/indexing/tap.mdx index a3eec839d931..8d76412fd28b 100644 --- a/website/src/pages/de/indexing/tap.mdx +++ b/website/src/pages/de/indexing/tap.mdx @@ -45,19 +45,19 @@ Solange Sie `tap-agent` und `indexer-agent` ausführen, wird alles automatisch a ### Verträge -| Vertrag | Arbitrum Mainnet (42161) | Arbitrum Sepolia (421614) | -| ------------------- | -------------------------------------------- | -------------------------------------------- | -| TAP-Prüfer | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | -| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | -| Treuhandkonto | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | +| Vertrag | Arbitrum Mainnet (42161) | Arbitrum Sepolia (421614) | +| -------------------------- | -------------------------------------------- | -------------------------------------------- | +| TAP-Prüfer | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | +| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | +| Treuhandkonto | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | ### Gateway -| Komponente | Edge- und Node-Mainnet (Arbitrum-Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | -| ------------- | --------------------------------------------- | --------------------------------------------- | -| Sender | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| Unterzeichner | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| Aggregator | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| Komponente | Edge- und Node-Mainnet (Arbitrum-Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | +| ---------------- | ---------------------------------------------- | --------------------------------------------- | +| Sender | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| Unterzeichner | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| Aggregator | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### Voraussetzungen From 15525d805e6cba27726a8d657a27c21c8ec23edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:26 -0400 Subject: [PATCH 0177/1709] New translations tap.mdx (Portuguese) --- website/src/pages/pt/indexing/tap.mdx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pt/indexing/tap.mdx b/website/src/pages/pt/indexing/tap.mdx index 197d8757b967..79de9a57e6ae 100644 --- a/website/src/pages/pt/indexing/tap.mdx +++ b/website/src/pages/pt/indexing/tap.mdx @@ -45,19 +45,19 @@ Tudo será executado automaticamente enquanto `tap-agent` e `indexer-agent` fore ### Contratos -| Contrato | Mainnet Arbitrum (42161) | Arbitrum Sepolia (421614) | -| ------------------- | -------------------------------------------- | -------------------------------------------- | -| Verificador do TAP | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | -| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | -| Escrow | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | +| Contrato | Mainnet Arbitrum (42161) | Arbitrum Sepolia (421614) | +| ------------------------- | -------------------------------------------- | -------------------------------------------- | +| Verificador do TAP | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | +| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | +| Escrow | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | ### Porta de Ligação -| Componente | Mainnet Edge and Note (Mainnet Arbitrum) | Testnet do Edge and Node (Arbitrum Sepolia) | -| ----------- | --------------------------------------------- | --------------------------------------------- | -| Remetente | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| Signatários | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| Agregador | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| Componente | Mainnet Edge and Note (Mainnet Arbitrum) | Testnet do Edge and Node (Arbitrum Sepolia) | +| -------------- | --------------------------------------------- | ------------------------------------------------ | +| Remetente | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| Signatários | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| Agregador | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### Pré-requisitos From 70af7b7a8ab59f845d226df88604225e51a9628e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:27 -0400 Subject: [PATCH 0178/1709] New translations tap.mdx (Hindi) --- website/src/pages/hi/indexing/tap.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/hi/indexing/tap.mdx b/website/src/pages/hi/indexing/tap.mdx index 9aff98fe1eae..bed6a68c4a5d 100644 --- a/website/src/pages/hi/indexing/tap.mdx +++ b/website/src/pages/hi/indexing/tap.mdx @@ -51,13 +51,13 @@ GraphTally allows a sender to make multiple payments to a receiver, **Receipts** | AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | | Escrow | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | -### गेटवे +### गेटवे -| घटक | Edge and Node Mainnet (Arbitrum Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | -| ---------------- | --------------------------------------------- | --------------------------------------------- | -| प्रेषक | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| हस्ताक्षरकर्ता | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| संकेन्द्रीयकर्ता | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| घटक | Edge and Node Mainnet (Arbitrum Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | +| ----------------- | --------------------------------------------- | --------------------------------------------- | +| प्रेषक | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| हस्ताक्षरकर्ता | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| संकेन्द्रीयकर्ता | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### आवश्यक शर्तें @@ -117,7 +117,7 @@ operator_mnemonic = "celery smart tip orange scare van steel radio dragon joy al [database] # Indexer घटकों के लिए उपयोग किए जाने वाले Postgres डेटाबेस का URL। वही डेटाबेस -# जिसका उपयोग `indexer-agent` द्वारा किया जाता है। यह अपेक्षित है कि `indexer-agent` +# जिसका उपयोग `indexer-agent` द्वारा किया जाता है। यह अपेक्षित है कि `indexer-agent` #आवश्यक तालिकाएँ बनाएगा। postgres_url = "postgres://postgres@postgres:5432/postgres" @@ -186,7 +186,7 @@ max_amount_willing_to_lose_grt = 20 ### Grafana डैशबोर्ड -आप Grafana Dashboard (https://github.com/graphprotocol/indexer-rs/blob/main/docs/dashboard.json) डाउनलोड कर सकते हैं और इम्पोर्ट कर सकते हैं। +आप Grafana Dashboard (https://github.com/graphprotocol/indexer-rs/blob/main/docs/dashboard.json) डाउनलोड कर सकते हैं और इम्पोर्ट कर सकते हैं। ### लॉन्चपैड From 7243823238f45799eebadf3cbeba06a85cc7364a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:39 -0400 Subject: [PATCH 0179/1709] New translations enums.mdx (Russian) --- website/src/pages/ru/subgraphs/guides/enums.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/subgraphs/guides/enums.mdx b/website/src/pages/ru/subgraphs/guides/enums.mdx index 1d696e352f9a..6109eaaae73f 100644 --- a/website/src/pages/ru/subgraphs/guides/enums.mdx +++ b/website/src/pages/ru/subgraphs/guides/enums.mdx @@ -72,7 +72,7 @@ type Token @entity { enum Marketplace { OpenSeaV1 # Представляет случай, когда NFT CryptoCoven торгуется на маркетплейсе OpenSeaV1 OpenSeaV2 # Представляет случай, когда NFT CryptoCoven торгуется на маркетплейсе OpenSeaV2 - SeaPort # Представляет случай, когда NFT CryptoCoven торгуется на маркетплейсе SeaPort + SeaPort # Представляет случай, когда NFT CryptoCoven торгуется на маркетплейсе SeaPort LooksRare # Представляет случай, когда NFT CryptoCoven торгуется на маркетплейсе LooksRare # ...и другие рынки } From 515bf6bfbabd46b2eb6816d2d27fc83be445c853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:41 -0400 Subject: [PATCH 0180/1709] New translations enums.mdx (Turkish) --- website/src/pages/tr/subgraphs/guides/enums.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/subgraphs/guides/enums.mdx b/website/src/pages/tr/subgraphs/guides/enums.mdx index 18c3021ed435..8b5ab54177af 100644 --- a/website/src/pages/tr/subgraphs/guides/enums.mdx +++ b/website/src/pages/tr/subgraphs/guides/enums.mdx @@ -92,7 +92,7 @@ Enum'dan pazar yeri adını bir dize olarak almak için bir fonksiyonu şöyle u export function getMarketplaceName(marketplace: Marketplace): string { // Enum değerini bir dizeye eşlemek için if-else ifadelerini kullanma if (marketplace === Marketplace.OpenSeaV1) { - return 'OpenSeaV1' // I Eğer pazar yeri OpenSea ise, onun dize temsilini döndür + return 'OpenSeaV1' // I Eğer pazar yeri OpenSea ise, onun dize temsilini döndür } else if (marketplace === Marketplace.OpenSeaV2) { return 'OpenSeaV2' } else if (marketplace === Marketplace.SeaPort) { From 3712b31d6e17f279277c3001fe01b140c0d97daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:45 -0400 Subject: [PATCH 0181/1709] New translations enums.mdx (Hindi) --- website/src/pages/hi/subgraphs/guides/enums.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/guides/enums.mdx b/website/src/pages/hi/subgraphs/guides/enums.mdx index d44418fec528..b4883c3bce8b 100644 --- a/website/src/pages/hi/subgraphs/guides/enums.mdx +++ b/website/src/pages/hi/subgraphs/guides/enums.mdx @@ -68,7 +68,7 @@ Enums प्रकार सुरक्षा प्रदान करते NFTs के व्यापार किए जाने वाले विभिन्न मार्केटप्लेस के लिए enums को परिभाषित करने के लिए, अपने Subgraph स्कीमा में निम्नलिखित का उपयोग करें: ```gql -#मार्केटप्लेस के लिए Enum जो CryptoCoven कॉन्ट्रैक्ट के साथ इंटरएक्टेड हैं (संभवत: ट्रेड/मिंट) +#मार्केटप्लेस के लिए Enum जो CryptoCoven कॉन्ट्रैक्ट के साथ इंटरएक्टेड हैं (संभवत: ट्रेड/मिंट) enum Marketplace { OpenSeaV1 # जब CryptoCoven NFT को इस बाजार में व्यापार किया जाता है OpenSeaV2 # जब CryptoCoven NFT को OpenSeaV2 बाजार में व्यापार किया जाता है From be5803c7acf664bdfa1fe700fff3c69e06e7d61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:00:51 -0400 Subject: [PATCH 0182/1709] New translations tap.mdx (French) --- website/src/pages/fr/indexing/tap.mdx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/fr/indexing/tap.mdx b/website/src/pages/fr/indexing/tap.mdx index 68a0b79a2e6f..1986db8769ee 100644 --- a/website/src/pages/fr/indexing/tap.mdx +++ b/website/src/pages/fr/indexing/tap.mdx @@ -45,19 +45,19 @@ Tant que vous exécutez `tap-agent` et `indexer-agent`, tout sera exécuté auto ### Contrats -| Contrat | Mainnet Arbitrum (42161) | Arbitrum Sepolia (421614) | -| --- | --- | --- | -| TAP Verifier | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | -| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | -| Tiers de confiance (Escrow) | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | +| Contrat | Mainnet Arbitrum (42161) | Arbitrum Sepolia (421614) | +| ---------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| TAP Verifier | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | +| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | +| Tiers de confiance (Escrow) | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | ### Passerelle (Gateway) -| Composant | Mainnet Node et Edge (Arbitrum Mainnet) | Testnet Node et Edge (Arbitrum Mainnet) | -| ----------- | --------------------------------------------- | --------------------------------------------- | -| Sender | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| Signataires | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| Aggregateur | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| Composant | Mainnet Node et Edge (Arbitrum Mainnet) | Testnet Node et Edge (Arbitrum Mainnet) | +| -------------- | --------------------------------------------- | --------------------------------------------- | +| Sender | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| Signataires | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| Aggregateur | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### Prérequis From a9d0804dac95a6b3db13df87571ad91483a332c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:01:19 -0400 Subject: [PATCH 0183/1709] New translations tap.mdx (Russian) --- website/src/pages/ru/indexing/tap.mdx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ru/indexing/tap.mdx b/website/src/pages/ru/indexing/tap.mdx index 7703c14853a6..1007b2eaaa9e 100644 --- a/website/src/pages/ru/indexing/tap.mdx +++ b/website/src/pages/ru/indexing/tap.mdx @@ -45,19 +45,19 @@ GraphTally allows a sender to make multiple payments to a receiver, **Receipts** ### Контракты -| Контракт | Arbitrum Mainnet (42161) | Arbitrum Sepolia (421614) | -| ------------------- | -------------------------------------------- | -------------------------------------------- | -| TAP-верификатор | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | -| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | -| Escrow | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | +| Контракт | Arbitrum Mainnet (42161) | Arbitrum Sepolia (421614) | +| ---------------------- | -------------------------------------------- | -------------------------------------------- | +| TAP-верификатор | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | +| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | +| Escrow | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | ### Шлюз -| Компонент | Edge и Node Mainnet (Arbitrum Mainnet) | Edge и Node Testnet (Arbitrum Sepolia) | -| ----------- | --------------------------------------------- | --------------------------------------------- | -| Отправитель | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| Подписанты | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | -| Агрегатор | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | +| Компонент | Edge и Node Mainnet (Arbitrum Mainnet) | Edge и Node Testnet (Arbitrum Sepolia) | +| --------------- | --------------------------------------------- | --------------------------------------------- | +| Отправитель | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| Подписанты | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| Агрегатор | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### Предварительные требования From 8b6977dd0f82c65736f8b3e002220c386b06f92e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:01:26 -0400 Subject: [PATCH 0184/1709] New translations tap.mdx (Turkish) --- website/src/pages/tr/indexing/tap.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/website/src/pages/tr/indexing/tap.mdx b/website/src/pages/tr/indexing/tap.mdx index d59e66ef4a76..6d1a9ccad7b4 100644 --- a/website/src/pages/tr/indexing/tap.mdx +++ b/website/src/pages/tr/indexing/tap.mdx @@ -45,18 +45,18 @@ Ağ geçidi her sorgu için size veritabanınızda saklanan bir `signed receipt` ### Sözleşmeler -| Sözleşme | Arbitrum Ana Ağı (42161) | Arbitrum Sepolia (421614) | -| ------------------- | -------------------------------------------- | -------------------------------------------- | -| TAP Doğrulayıcı | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | -| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | -| Emanet (Escrow) | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | +| Sözleşme | Arbitrum Ana Ağı (42161) | Arbitrum Sepolia (421614) | +| ---------------------------- | -------------------------------------------- | -------------------------------------------- | +| TAP Doğrulayıcı | `0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a` | `0xfC24cE7a4428A6B89B52645243662A02BA734ECF` | +| AllocationIDTracker | `0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c` | `0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11` | +| Emanet (Escrow) | `0x8f477709eF277d4A880801D01A140a9CF88bA0d3` | `0x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02` | ### Ağ Geçidi -| Bileşen | Edge and Node Mainnet (Arbitrum Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | -| --- | --- | --- | -| Gönderen | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | -| İmzalayıcılar (Signers) | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | +| Bileşen | Edge and Node Mainnet (Arbitrum Mainnet) | Edge and Node Testnet (Arbitrum Sepolia) | +| --------------------------- | --------------------------------------------- | --------------------------------------------- | +| Gönderen | `0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467` | `0xC3dDf37906724732FfD748057FEBe23379b0710D` | +| İmzalayıcılar (Signers) | `0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A2211` | `0xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE` | | Toplulaştırıcı (Aggregator) | `https://tap-aggregator.network.thegraph.com` | `https://tap-aggregator.testnet.thegraph.com` | ### Prerequisites From 086e8d5c6b2a73d66d75a83eb3ad33191557f4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 14 Apr 2025 17:01:43 -0400 Subject: [PATCH 0185/1709] New translations tokenomics.mdx (Hindi) --- website/src/pages/hi/resources/tokenomics.mdx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/website/src/pages/hi/resources/tokenomics.mdx b/website/src/pages/hi/resources/tokenomics.mdx index ac420f323ab7..00ea0f5b3cef 100644 --- a/website/src/pages/hi/resources/tokenomics.mdx +++ b/website/src/pages/hi/resources/tokenomics.mdx @@ -6,7 +6,7 @@ description: The Graph Network को शक्तिशाली टोकन ## Overview -The Graph एक **decentralized protocol** है, जो **blockchain data** तक आसान पहुँच प्रदान करता है। यह **blockchain data** को उसी तरह **index** करता है, जैसे **Google** वेब को **index** करता है। अगर आपने किसी ऐसे **dapp** का उपयोग किया है जो किसी **Subgraph** से डेटा प्राप्त करता है, तो आपने संभवतः **The Graph** के साथ इंटरैक्ट किया है। आज, **Web3 ecosystem** में हजारों [लोकप्रिय dapps](https://thegraph.com/explorer) **The Graph** का उपयोग कर रहे हैं। +The Graph एक **decentralized protocol** है, जो **blockchain data** तक आसान पहुँच प्रदान करता है। यह **blockchain data** को उसी तरह **index** करता है, जैसे **Google** वेब को **index** करता है। अगर आपने किसी ऐसे **dapp** का उपयोग किया है जो किसी **Subgraph** से डेटा प्राप्त करता है, तो आपने संभवतः **The Graph** के साथ इंटरैक्ट किया है। आज, **Web3 ecosystem** में हजारों [लोकप्रिय dapps](https://thegraph.com/explorer) **The Graph** का उपयोग कर रहे हैं। ## विशिष्टताएँ @@ -36,7 +36,7 @@ The Graph ब्लॉकचेन डेटा को अधिक सुलभ ## Delegator(निष्क्रिय रूप से GRT कमाएं) -**Indexers** को **Delegators** द्वारा **GRT** डेलिगेट किया जाता है, जिससे नेटवर्क पर Subgraphs में Indexer की **stake** बढ़ती है। इसके बदले में, **Delegators** को Indexer से मिलने वाले कुल **query fees** और **indexing rewards** का एक निश्चित प्रतिशत मिलता है। हर **Indexer** स्वतंत्र रूप से तय करता है कि वह **Delegators** को कितना रिवार्ड देगा, जिससे **Indexers** के बीच **Delegators** को आकर्षित करने की प्रतिस्पर्धा बनी रहती है। अधिकांश **Indexers** सालाना **9-12%** रिटर्न ऑफर करते हैं। +**Indexers** को **Delegators** द्वारा **GRT** डेलिगेट किया जाता है, जिससे नेटवर्क पर Subgraphs में Indexer की **stake** बढ़ती है। इसके बदले में, **Delegators** को Indexer से मिलने वाले कुल **query fees** और **indexing rewards** का एक निश्चित प्रतिशत मिलता है। हर **Indexer** स्वतंत्र रूप से तय करता है कि वह **Delegators** को कितना रिवार्ड देगा, जिससे **Indexers** के बीच **Delegators** को आकर्षित करने की प्रतिस्पर्धा बनी रहती है। अधिकांश **Indexers** सालाना **9-12%** रिटर्न ऑफर करते हैं। यदि कोई Delegator 15k GRT को किसी ऐसे Indexer को डेलिगेट करता है जो 10% की पेशकश कर रहा है, तो Delegator को वार्षिक रूप से ~1,500 GRT का इनाम प्राप्त होगा। @@ -46,7 +46,7 @@ The Graph ब्लॉकचेन डेटा को अधिक सुलभ ## Curators (GRT कमाएं) -**Curators** उच्च-गुणवत्ता वाले **Subgraphs** की पहचान करते हैं और उन्हें **"curate"** करते हैं (अर्थात, उन पर **GRT signal** करते हैं) ताकि **curation shares** कमा सकें। ये **curation shares** उस **Subgraph** द्वारा उत्पन्न सभी भविष्य की **query fees** का एक निश्चित प्रतिशत सुनिश्चित करते हैं। हालाँकि कोई भी स्वतंत्र नेटवर्क प्रतिभागी **Curator** बन सकता है, आमतौर पर **Subgraph developers** अपने स्वयं के **Subgraphs** के पहले **Curators** होते हैं, क्योंकि वे सुनिश्चित करना चाहते हैं कि उनका **Subgraph indexed** हो। +**Curators** उच्च-गुणवत्ता वाले **Subgraphs** की पहचान करते हैं और उन्हें **"curate"** करते हैं (अर्थात, उन पर **GRT signal** करते हैं) ताकि **curation shares** कमा सकें। ये **curation shares** उस **Subgraph** द्वारा उत्पन्न सभी भविष्य की **query fees** का एक निश्चित प्रतिशत सुनिश्चित करते हैं। हालाँकि कोई भी स्वतंत्र नेटवर्क प्रतिभागी **Curator** बन सकता है, आमतौर पर **Subgraph developers** अपने स्वयं के **Subgraphs** के पहले **Curators** होते हैं, क्योंकि वे सुनिश्चित करना चाहते हैं कि उनका **Subgraph indexed** हो। **Subgraph developers** को सलाह दी जाती है कि वे अपने **Subgraph** को कम से कम **3,000 GRT** के साथ **curate** करें। हालांकि, यह संख्या **network activity** और **community participation** के अनुसार बदल सकती है। @@ -54,11 +54,11 @@ The Graph ब्लॉकचेन डेटा को अधिक सुलभ ## डेवलपर्स -**Developers** **Subgraphs** बनाते हैं और उन्हें **query** करके **blockchain data** प्राप्त करते हैं। चूंकि **Subgraphs** **open source** होते हैं, **developers** मौजूदा **Subgraphs** को **query** करके अपने **dapps** में **blockchain data** लोड कर सकते हैं। **Developers** द्वारा किए गए **queries** के लिए **GRT** में भुगतान किया जाता है, जो नेटवर्क प्रतिभागियों के बीच वितरित किया जाता है। +**Developers** **Subgraphs** बनाते हैं और उन्हें **query** करके **blockchain data** प्राप्त करते हैं। चूंकि **Subgraphs** **open source** होते हैं, **developers** मौजूदा **Subgraphs** को **query** करके अपने **dapps** में **blockchain data** लोड कर सकते हैं। **Developers** द्वारा किए गए **queries** के लिए **GRT** में भुगतान किया जाता है, जो नेटवर्क प्रतिभागियों के बीच वितरित किया जाता है। ### Creating a Subgraph -**Developers** **[Subgraph create](/developing/creating-a-subgraph/)** करके **blockchain** पर डेटा **index** कर सकते हैं। **Subgraphs** यह निर्देश देते हैं कि **Indexers** को कौन सा डेटा **consumers** को उपलब्ध कराना चाहिए। +**Developers** **[Subgraph create](/developing/creating-a-subgraph/)** करके **blockchain** पर डेटा **index** कर सकते हैं। **Subgraphs** यह निर्देश देते हैं कि **Indexers** को कौन सा डेटा **consumers** को उपलब्ध कराना चाहिए। जब **developers** अपना **Subgraph** बना और टेस्ट कर लेते हैं, तो वे इसे **The Graph** के **decentralized network** पर **[publish](/subgraphs/developing/publishing/publishing-a-subgraph/)** कर सकते हैं। @@ -92,9 +92,8 @@ Indexers दो तरीकों से GRT रिवार्ड्स कम **प्रारंभिक टोकन आपूर्ति** 10 बिलियन **GRT** है, और **Indexers** को **Subgraphs** पर **stake allocate** करने के लिए प्रति वर्ष **3%** नई **GRT issuance** का लक्ष्य रखा गया है। इसका मतलब है कि हर साल **Indexers** के योगदान के लिए नए टोकन जारी किए जाएंगे, जिससे कुल **GRT आपूर्ति** 3% बढ़ेगी। -The Graph में नए टोकन **issuance** को संतुलित करने के लिए कई **burning mechanisms** शामिल किए गए हैं। सालाना लगभग **1% GRT supply** विभिन्न नेटवर्क गतिविधियों के माध्यम से **burn** हो जाती है, और यह संख्या नेटवर्क की वृद्धि के साथ बढ़ रही है। ये **burning mechanisms** शामिल हैं: - **0.5% Delegation Tax**: जब कोई **Delegator** किसी **Indexer** को **GRT** डेलीगेट करता है। - -- **1% Curation Tax**: जब **Curators** किसी **Subgraph** पर **GRT signal** करते हैं। +The Graph में नए टोकन **issuance** को संतुलित करने के लिए कई **burning mechanisms** शामिल किए गए हैं। सालाना लगभग **1% GRT supply** विभिन्न नेटवर्क गतिविधियों के माध्यम से **burn** हो जाती है, और यह संख्या नेटवर्क की वृद्धि के साथ बढ़ रही है। ये **burning mechanisms** शामिल हैं: - **0.5% Delegation Tax**: जब कोई **Delegator** किसी **Indexer** को **GRT** डेलीगेट करता है। +- **1% Curation Tax**: जब **Curators** किसी **Subgraph** पर **GRT signal** करते हैं। - **1% Query Fees Burn**: जब **ब्लॉकचेन डेटा** के लिए **queries** की जाती हैं। ![कुल जले हुए GRT](/img/total-burned-grt.jpeg) @@ -103,4 +102,4 @@ The Graph में नए टोकन **issuance** को संतुलि ## प्रोटोकॉल में सुधार करना -The Graph Network निरंतर विकसित हो रहा है और प्रोटोकॉल की आर्थिक संरचना में सुधार किए जा रहे हैं ताकि सभी नेटवर्क प्रतिभागियों को सर्वोत्तम अनुभव मिल सके। The Graph Council प्रोटोकॉल परिवर्तनों की निगरानी करता है और समुदाय के सदस्यों को भाग लेने के लिए प्रोत्साहित किया जाता है। प्रोटोकॉल सुधारों में शामिल हों [The Graph Forum] (https://forum.thegraph.com/) में। + The Graph Network निरंतर विकसित हो रहा है और प्रोटोकॉल की आर्थिक संरचना में सुधार किए जा रहे हैं ताकि सभी नेटवर्क प्रतिभागियों को सर्वोत्तम अनुभव मिल सके। The Graph Council प्रोटोकॉल परिवर्तनों की निगरानी करता है और समुदाय के सदस्यों को भाग लेने के लिए प्रोत्साहित किया जाता है। प्रोटोकॉल सुधारों में शामिल हों [The Graph Forum] (https://forum.thegraph.com/) में। From b64cfe7477a870fdd63509668717dd22c228bcad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:41:57 -0400 Subject: [PATCH 0186/1709] New translations quick-start.mdx (Japanese) --- website/src/pages/ja/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ja/substreams/quick-start.mdx b/website/src/pages/ja/substreams/quick-start.mdx index 6bbe99168657..48b581eedec3 100644 --- a/website/src/pages/ja/substreams/quick-start.mdx +++ b/website/src/pages/ja/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 0540caebc409303698a96597587ad9c88f4059ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:41:58 -0400 Subject: [PATCH 0187/1709] New translations quick-start.mdx (Russian) --- website/src/pages/ru/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ru/substreams/quick-start.mdx b/website/src/pages/ru/substreams/quick-start.mdx index 922ee9c9e2db..6a38efbd0e2b 100644 --- a/website/src/pages/ru/substreams/quick-start.mdx +++ b/website/src/pages/ru/substreams/quick-start.mdx @@ -31,6 +31,7 @@ sidebarTitle: Быстрый старт - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) Чтобы создать и оптимизировать свои Субпотоки с нуля, используйте минимальный путь внутри [контейнера для разработки](/substreams/developing/dev-container/). From cd9ef7cec2ad8beb0e8af4b95a43592b20595b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:00 -0400 Subject: [PATCH 0188/1709] New translations quick-start.mdx (Turkish) --- website/src/pages/tr/substreams/quick-start.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/substreams/quick-start.mdx b/website/src/pages/tr/substreams/quick-start.mdx index 7ff97c69968b..1695af116415 100644 --- a/website/src/pages/tr/substreams/quick-start.mdx +++ b/website/src/pages/tr/substreams/quick-start.mdx @@ -1,5 +1,5 @@ --- -title: 'Substreams: Hızlı Başlangıç' +title: "Substreams: Hızlı Başlangıç" sidebarTitle: Hızlı Başlangıç --- @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 763128a1bde9ffde6668261f884656ca691b8fb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:01 -0400 Subject: [PATCH 0189/1709] New translations quick-start.mdx (French) --- website/src/pages/fr/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/fr/substreams/quick-start.mdx b/website/src/pages/fr/substreams/quick-start.mdx index 75da28206cb5..763e73918164 100644 --- a/website/src/pages/fr/substreams/quick-start.mdx +++ b/website/src/pages/fr/substreams/quick-start.mdx @@ -31,6 +31,7 @@ Si vous ne trouvez pas de package Substreams qui réponde à vos besoins spécif - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) Pour construire et optimiser vos Substreams à partir de zéro, utilisez le chemin minimal dans le [conteneur de développement](/substreams/developing/dev-container/). From 332220bfcde5ac00399b78db90ec578b47e7585e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:03 -0400 Subject: [PATCH 0190/1709] New translations quick-start.mdx (Romanian) --- website/src/pages/ro/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ro/substreams/quick-start.mdx b/website/src/pages/ro/substreams/quick-start.mdx index b5eec572b00a..acd3029d1376 100644 --- a/website/src/pages/ro/substreams/quick-start.mdx +++ b/website/src/pages/ro/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From c36c1048ea4e2217f639bee951aec0be60144234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:05 -0400 Subject: [PATCH 0191/1709] New translations quick-start.mdx (Spanish) --- website/src/pages/es/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/es/substreams/quick-start.mdx b/website/src/pages/es/substreams/quick-start.mdx index 4e6ec88c0c0e..44847485b432 100644 --- a/website/src/pages/es/substreams/quick-start.mdx +++ b/website/src/pages/es/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 4ba5cd1b2bb33b8a258b7a71515d2bffc9fe78b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:07 -0400 Subject: [PATCH 0192/1709] New translations quick-start.mdx (Arabic) --- website/src/pages/ar/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ar/substreams/quick-start.mdx b/website/src/pages/ar/substreams/quick-start.mdx index 7428d67bf4ff..8698cc7102e3 100644 --- a/website/src/pages/ar/substreams/quick-start.mdx +++ b/website/src/pages/ar/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From d18cc610de82c051ecb7cbebc897825938e45964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:08 -0400 Subject: [PATCH 0193/1709] New translations quick-start.mdx (Czech) --- website/src/pages/cs/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/cs/substreams/quick-start.mdx b/website/src/pages/cs/substreams/quick-start.mdx index 50a16d470cfe..ecf32732ba24 100644 --- a/website/src/pages/cs/substreams/quick-start.mdx +++ b/website/src/pages/cs/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 3a47aa79a30de42a6cb13df34aa45f6eff680571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:09 -0400 Subject: [PATCH 0194/1709] New translations quick-start.mdx (German) --- website/src/pages/de/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/de/substreams/quick-start.mdx b/website/src/pages/de/substreams/quick-start.mdx index 6d82be0f8ac1..6c03ea9762a7 100644 --- a/website/src/pages/de/substreams/quick-start.mdx +++ b/website/src/pages/de/substreams/quick-start.mdx @@ -31,6 +31,7 @@ Wenn Sie kein Substreams-Paket finden können, das Ihren speziellen Anforderunge - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) Um Ihre Substreams von Anfang an zu erstellen und zu optimieren, verwenden Sie den minimalen Pfad innerhalb des [Dev Containers](/substreams/developing/dev-container/). From 829be8480505071165f2a099b36e845ebc4f14b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:11 -0400 Subject: [PATCH 0195/1709] New translations quick-start.mdx (Italian) --- website/src/pages/it/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/it/substreams/quick-start.mdx b/website/src/pages/it/substreams/quick-start.mdx index a4c82cb797d9..0f1eb0783b99 100644 --- a/website/src/pages/it/substreams/quick-start.mdx +++ b/website/src/pages/it/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 7743382444c3138451de900ef1cf8cbe41a69d21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:13 -0400 Subject: [PATCH 0196/1709] New translations quick-start.mdx (Korean) --- website/src/pages/ko/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ko/substreams/quick-start.mdx b/website/src/pages/ko/substreams/quick-start.mdx index b5eec572b00a..acd3029d1376 100644 --- a/website/src/pages/ko/substreams/quick-start.mdx +++ b/website/src/pages/ko/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 4beaa2296cd18780e59697add8782676fb497e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:15 -0400 Subject: [PATCH 0197/1709] New translations quick-start.mdx (Dutch) --- website/src/pages/nl/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/nl/substreams/quick-start.mdx b/website/src/pages/nl/substreams/quick-start.mdx index eaec3b713bfe..18abfcfda3a1 100644 --- a/website/src/pages/nl/substreams/quick-start.mdx +++ b/website/src/pages/nl/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 70e0f0a2a17fcff9e835cc52d9bcda20a8906ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:16 -0400 Subject: [PATCH 0198/1709] New translations quick-start.mdx (Polish) --- website/src/pages/pl/substreams/quick-start.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/substreams/quick-start.mdx b/website/src/pages/pl/substreams/quick-start.mdx index 96846fccaf05..d95fd2637fbd 100644 --- a/website/src/pages/pl/substreams/quick-start.mdx +++ b/website/src/pages/pl/substreams/quick-start.mdx @@ -1,6 +1,6 @@ --- title: Substreams Quick Start -sidebarTitle: ' Na start' +sidebarTitle: " Na start" --- Discover how to utilize ready-to-use substream packages or develop your own. @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 2077ca53596d38d7e9e2caea06df9b1d7ef288b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:18 -0400 Subject: [PATCH 0199/1709] New translations quick-start.mdx (Portuguese) --- website/src/pages/pt/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/pt/substreams/quick-start.mdx b/website/src/pages/pt/substreams/quick-start.mdx index 9ee566780134..1a5c15ce76a4 100644 --- a/website/src/pages/pt/substreams/quick-start.mdx +++ b/website/src/pages/pt/substreams/quick-start.mdx @@ -31,6 +31,7 @@ Se não encontrar um pacote do Substreams que atenda às suas necessidades espec - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) Para construir e otimizar os seus Substreams do zero, use o caminho mínimo dentro do [Dev Container](/substreams/developing/dev-container/). From 299f2f138c7575ab1cb3a085d8338a267c9a4382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:20 -0400 Subject: [PATCH 0200/1709] New translations quick-start.mdx (Swedish) --- website/src/pages/sv/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/sv/substreams/quick-start.mdx b/website/src/pages/sv/substreams/quick-start.mdx index 8a1d453f56a9..8a547799323a 100644 --- a/website/src/pages/sv/substreams/quick-start.mdx +++ b/website/src/pages/sv/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From b53a340d086d7818058c7c0b3f85dcadf02f668b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:22 -0400 Subject: [PATCH 0201/1709] New translations quick-start.mdx (Ukrainian) --- website/src/pages/uk/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/uk/substreams/quick-start.mdx b/website/src/pages/uk/substreams/quick-start.mdx index 056c7391e15c..74ddbc73a3de 100644 --- a/website/src/pages/uk/substreams/quick-start.mdx +++ b/website/src/pages/uk/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From d5446a14ae06808c8797a304f0bf1cb8c7a8bb89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:24 -0400 Subject: [PATCH 0202/1709] New translations quick-start.mdx (Chinese Simplified) --- website/src/pages/zh/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/zh/substreams/quick-start.mdx b/website/src/pages/zh/substreams/quick-start.mdx index be4fc19302f3..7826c8b747a7 100644 --- a/website/src/pages/zh/substreams/quick-start.mdx +++ b/website/src/pages/zh/substreams/quick-start.mdx @@ -31,6 +31,7 @@ sidebarTitle: 快速开始 - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) 若要从零构建和优化您的子流,请使用 [Dev容器](/substreams/developing/dev-container/)中的最小路径。 From a8f250b45487fb4a592488806d7b1bd0bce499b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:26 -0400 Subject: [PATCH 0203/1709] New translations quick-start.mdx (Urdu (Pakistan)) --- website/src/pages/ur/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/ur/substreams/quick-start.mdx b/website/src/pages/ur/substreams/quick-start.mdx index de7572a6bc59..a8a3a54ddbab 100644 --- a/website/src/pages/ur/substreams/quick-start.mdx +++ b/website/src/pages/ur/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From e020e378dd69c66344893336c1cc079420bb94ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:27 -0400 Subject: [PATCH 0204/1709] New translations quick-start.mdx (Vietnamese) --- website/src/pages/vi/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/vi/substreams/quick-start.mdx b/website/src/pages/vi/substreams/quick-start.mdx index bca91aa19452..f97dedc8c547 100644 --- a/website/src/pages/vi/substreams/quick-start.mdx +++ b/website/src/pages/vi/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 29dd5097c05792f1ac2432e992d3f42a7948985a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:29 -0400 Subject: [PATCH 0205/1709] New translations quick-start.mdx (Marathi) --- website/src/pages/mr/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/mr/substreams/quick-start.mdx b/website/src/pages/mr/substreams/quick-start.mdx index a2f7e3e938bd..3b9ae824dd9b 100644 --- a/website/src/pages/mr/substreams/quick-start.mdx +++ b/website/src/pages/mr/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From 8daa2f25b407a69bfbe8ed43c5a0e2709f6c8222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 15 Apr 2025 17:42:30 -0400 Subject: [PATCH 0206/1709] New translations quick-start.mdx (Hindi) --- website/src/pages/hi/substreams/quick-start.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/pages/hi/substreams/quick-start.mdx b/website/src/pages/hi/substreams/quick-start.mdx index c4a0d5be8e23..d775f2f6dc57 100644 --- a/website/src/pages/hi/substreams/quick-start.mdx +++ b/website/src/pages/hi/substreams/quick-start.mdx @@ -31,6 +31,7 @@ If you can't find a Substreams package that meets your specific needs, you can d - [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) - [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) - [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) To build and optimize your Substreams from zero, use the minimal path within the [Dev Container](/substreams/developing/dev-container/). From b4dc544c97eedc81b857111258d3293b021beb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:19 -0400 Subject: [PATCH 0207/1709] New translations using-subgraph-studio.mdx (Romanian) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ro/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ro/subgraphs/developing/deploying/using-subgraph-studio.mdx index 77d10212c770..d44f9b375203 100644 --- a/website/src/pages/ro/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ro/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 99cad784ce0e42d3ceb8dd9b544b9789e9d6a4f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:20 -0400 Subject: [PATCH 0208/1709] New translations using-subgraph-studio.mdx (French) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/fr/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/fr/subgraphs/developing/deploying/using-subgraph-studio.mdx index 4582f8643eb7..e1a4559b28bf 100644 --- a/website/src/pages/fr/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/fr/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Une fois que vous êtes prêt, vous pouvez déployer votre Subgraph dans Subgraph Studio. > Le déploiement d'un Subgraph à l'aide de la CLI le transfère dans le Studio, où vous pouvez le tester et mettre à jour les métadonnées. Cette action ne publie pas votre Subgraph sur le réseau décentralisé. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Utilisez la commande CLI suivante pour déployer votre Subgraph : @@ -104,6 +106,8 @@ Après avoir exécuté cette commande, la CLI demandera une étiquette de versio Après le déploiement, vous pouvez tester votre Subgraph (soit dans Subgraph Studio, soit dans votre propre application, avec l'URL de requête de déploiement), déployer une autre version, mettre à jour les métadonnées et publier sur [Graph Explorer](https://thegraph.com/explorer) lorsque vous êtes prêt. +> **Note**: The development query URL is limited to 3,000 queries per day. + Utilisez Subgraph Studio pour vérifier les journaux du tableau de bord et rechercher les erreurs éventuelles de votre Subgraph. ## Publiez votre subgraph From 0d7c6bb63d788fcde4ec263739da1413b52c4faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:21 -0400 Subject: [PATCH 0209/1709] New translations using-subgraph-studio.mdx (Spanish) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/es/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/es/subgraphs/developing/deploying/using-subgraph-studio.mdx index 29eed7358005..82b865a94db2 100644 --- a/website/src/pages/es/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/es/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 801dbb0b9362927742f45f5aee35ffc7cb774fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:23 -0400 Subject: [PATCH 0210/1709] New translations using-subgraph-studio.mdx (Arabic) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ar/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ar/subgraphs/developing/deploying/using-subgraph-studio.mdx index 1e0826bfe148..15ac3901d9fb 100644 --- a/website/src/pages/ar/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ar/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 7b93ecc618ffd3a088ebd2872a25817187544654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:24 -0400 Subject: [PATCH 0211/1709] New translations using-subgraph-studio.mdx (Czech) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/cs/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/cs/subgraphs/developing/deploying/using-subgraph-studio.mdx index 14be0175123c..01056c092ca2 100644 --- a/website/src/pages/cs/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/cs/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From cb48e0a545a3f48ce7417c552efb2f6d4363822e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:25 -0400 Subject: [PATCH 0212/1709] New translations using-subgraph-studio.mdx (German) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/de/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/de/subgraphs/developing/deploying/using-subgraph-studio.mdx index 4f784b4304b8..2428cc8eca51 100644 --- a/website/src/pages/de/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/de/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Sobald Sie bereit sind, können Sie Ihren Subgraph in Subgraph Studio bereitstellen. > Wenn Sie einen Subgraphen mit der Befehlszeilenschnittstelle bereitstellen, wird er in das Studio übertragen, wo Sie ihn testen und die Metadaten aktualisieren können. Durch diese Aktion wird Ihr Subgraph nicht im dezentralen Netzwerk veröffentlicht. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Verwenden Sie den folgenden CLI-Befehl, um Ihren Subgraph zu verteilen: @@ -104,6 +106,8 @@ Nach der Ausführung dieses Befehls wird die CLI nach einer Versionsbezeichnung Nach dem Deployment können Sie Ihren Subgraph testen (entweder in Subgraph Studio oder in Ihrer eigenen Anwendung, mit der Deployment-Query-URL), eine weitere Version deployen, die Metadaten aktualisieren und im [Graph Explorer](https://thegraph.com/explorer) veröffentlichen, wenn Sie bereit sind. +> **Note**: The development query URL is limited to 3,000 queries per day. + Verwenden Sie Subgraph Studio, um die Protokolle auf dem Dashboard zu überprüfen und nach Fehlern in Ihrem Subgraphen zu suchen. ## Veröffentlichen Sie Ihren Subgraph From 2cd077e8b28250cda820eac6495f08f8ee9b1025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:26 -0400 Subject: [PATCH 0213/1709] New translations using-subgraph-studio.mdx (Italian) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/it/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/it/subgraphs/developing/deploying/using-subgraph-studio.mdx index 3a07d7d50b24..f1e69207ee72 100644 --- a/website/src/pages/it/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/it/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 2e404e65802990bae3f1865d55886d6b1c152051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:27 -0400 Subject: [PATCH 0214/1709] New translations using-subgraph-studio.mdx (Japanese) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ja/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ja/subgraphs/developing/deploying/using-subgraph-studio.mdx index 4e8503e208e4..3b4a1ecf9ba7 100644 --- a/website/src/pages/ja/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ja/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From c994a1f51476d0811cc76cc65fab838e55bd7632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:29 -0400 Subject: [PATCH 0215/1709] New translations using-subgraph-studio.mdx (Korean) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ko/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ko/subgraphs/developing/deploying/using-subgraph-studio.mdx index 77d10212c770..d44f9b375203 100644 --- a/website/src/pages/ko/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ko/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From e05d1399045dbc1cb992c945e8d85f1f0ab39faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:30 -0400 Subject: [PATCH 0216/1709] New translations using-subgraph-studio.mdx (Dutch) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/nl/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/nl/subgraphs/developing/deploying/using-subgraph-studio.mdx index 370e428284cc..c64fab1db15e 100644 --- a/website/src/pages/nl/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/nl/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From ae733c0fe5f5523cd4ecfb65dd8d4da7d503b1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:31 -0400 Subject: [PATCH 0217/1709] New translations using-subgraph-studio.mdx (Polish) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/pl/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/pl/subgraphs/developing/deploying/using-subgraph-studio.mdx index c21ff6dc2358..cd107113c9fd 100644 --- a/website/src/pages/pl/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/pl/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From bda1fdef2e75b176084d066f8f02f14acdbb91f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:32 -0400 Subject: [PATCH 0218/1709] New translations using-subgraph-studio.mdx (Portuguese) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/pt/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/pt/subgraphs/developing/deploying/using-subgraph-studio.mdx index 5a8e4fb9f905..5ba582a0ab0c 100644 --- a/website/src/pages/pt/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/pt/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ Após executar este comando, a CLI solicitará um número de versão. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Edite o Seu Subgraph From b1069167e8141b63878f6e657971b93c013c41d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:33 -0400 Subject: [PATCH 0219/1709] New translations using-subgraph-studio.mdx (Russian) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ru/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ru/subgraphs/developing/deploying/using-subgraph-studio.mdx index 3ff9c8594763..9e6a7496d87c 100644 --- a/website/src/pages/ru/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ru/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ graph deploy After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Публикация Вашего субграфа From f09d135c26adedce81e65733929d7159b3dfb5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:35 -0400 Subject: [PATCH 0220/1709] New translations using-subgraph-studio.mdx (Swedish) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/sv/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/sv/subgraphs/developing/deploying/using-subgraph-studio.mdx index dc1facd6d5cb..0afc63760767 100644 --- a/website/src/pages/sv/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/sv/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From d7f21bae673c6d5bb113b6c16a887b5b01b688a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:36 -0400 Subject: [PATCH 0221/1709] New translations using-subgraph-studio.mdx (Turkish) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/tr/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/tr/subgraphs/developing/deploying/using-subgraph-studio.mdx index a4e8ca41d951..caa7b1cc5a3f 100644 --- a/website/src/pages/tr/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/tr/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ Bu komutu çalıştırdıktan sonra CLI sizden bir sürüm etiketi isteyecektir. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Subgraph’inizi Yayımlama From 6356f2f4ebb58df97c97432738458ae6883f8562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:37 -0400 Subject: [PATCH 0222/1709] New translations using-subgraph-studio.mdx (Ukrainian) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/uk/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/uk/subgraphs/developing/deploying/using-subgraph-studio.mdx index 2b4c1c11efa0..a3ebd8c532fc 100644 --- a/website/src/pages/uk/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/uk/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 34b5907aaf92127e58d807acb9fea38a6ec81332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:38 -0400 Subject: [PATCH 0223/1709] New translations using-subgraph-studio.mdx (Chinese Simplified) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/zh/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/zh/subgraphs/developing/deploying/using-subgraph-studio.mdx index 889dbf99a4a8..f0f956e93dea 100644 --- a/website/src/pages/zh/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/zh/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth 一旦你准备好了,你可以将你的子图部署到子图工作室。 > 部署一个 CLI 的子图,推送它到工作室,在那里你可以测试它并更新元数据。 此操作不会将你的子图发布到去中心化的网络。 +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. 使用下面的 CLI 命令来部署您的子图: @@ -104,6 +106,8 @@ graph deploy 部署后,你可以测试你的子图(在SubgraStudio或在你自己的应用中,使用部署查询 URL), 部署另一个版本,更新元数据,并在你准备就绪时发布到 [Graph Explorer](https://thegraph.com/explorer)。 +> **Note**: The development query URL is limited to 3,000 queries per day. + 使用子图工作室检查仪表板上的日志,并查找您的子图中的任何错误。 ## 发布子图 From 806d1283bd5fdf70b929c39e9493ce59a93f6abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:39 -0400 Subject: [PATCH 0224/1709] New translations using-subgraph-studio.mdx (Urdu (Pakistan)) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/ur/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/ur/subgraphs/developing/deploying/using-subgraph-studio.mdx index f41499fd9c51..741771522fd9 100644 --- a/website/src/pages/ur/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/ur/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From fe25695044a684ac51725792b9501a487e6bf075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:40 -0400 Subject: [PATCH 0225/1709] New translations using-subgraph-studio.mdx (Vietnamese) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/vi/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/vi/subgraphs/developing/deploying/using-subgraph-studio.mdx index 8e89b2999d96..6c1cd5654231 100644 --- a/website/src/pages/vi/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/vi/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 49fffcd2d7543a36701ece35afa6cbc0531c128f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:41 -0400 Subject: [PATCH 0226/1709] New translations using-subgraph-studio.mdx (Marathi) --- .../subgraphs/developing/deploying/using-subgraph-studio.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/pages/mr/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/mr/subgraphs/developing/deploying/using-subgraph-studio.mdx index 2319974d45ed..e07a0f3d1531 100644 --- a/website/src/pages/mr/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/mr/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ After running this command, the CLI will ask for a version label. After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## Publish Your Subgraph From 320eff7c9d3b0976d8a2aea47f48f18d9e2e1826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 16 Apr 2025 16:38:43 -0400 Subject: [PATCH 0227/1709] New translations using-subgraph-studio.mdx (Hindi) --- .../developing/deploying/using-subgraph-studio.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/developing/deploying/using-subgraph-studio.mdx b/website/src/pages/hi/subgraphs/developing/deploying/using-subgraph-studio.mdx index eab335f08623..e4a38c427323 100644 --- a/website/src/pages/hi/subgraphs/developing/deploying/using-subgraph-studio.mdx +++ b/website/src/pages/hi/subgraphs/developing/deploying/using-subgraph-studio.mdx @@ -25,7 +25,7 @@ In Subgraph Studio,आप निम Deploy करने से पहले, आपको The Graph CLI इंस्टॉल करना होगा। -आपको The Graph CLI का उपयोग करने के लिए Node.js(https://nodejs.org/) और आपकी पसंद का पैकेज मैनेजर (npm, yarn या pnpm) स्थापित होना चाहिए। सबसे हालिया (https://github.com/graphprotocol/graph-tooling/releases?q=%40graphprotocol%2Fgraph-cli&expanded=true) CLI संस्करण की जांच करें। +आपको The Graph CLI का उपयोग करने के लिए Node.js(https://nodejs.org/) और आपकी पसंद का पैकेज मैनेजर (npm, yarn या pnpm) स्थापित होना चाहिए। सबसे हालिया (https://github.com/graphprotocol/graph-tooling/releases?q=%40graphprotocol%2Fgraph-cli&expanded=true) CLI संस्करण की जांच करें। ### इंस्टॉल करें 'yarn' के साथ @@ -88,6 +88,8 @@ graph auth Once you are ready, you can deploy your Subgraph to Subgraph Studio. > Deploying a Subgraph with the CLI pushes it to the Studio, where you can test it and update the metadata. This action won't publish your Subgraph to the decentralized network. +> +> **Note**: Each account is limited to 3 deployed (unpublished) Subgraphs. If you reach this limit, you must archive or publish existing Subgraphs before deploying new ones. Use the following CLI command to deploy your Subgraph: @@ -104,6 +106,8 @@ graph deploy After deploying, you can test your Subgraph (either in Subgraph Studio or in your own app, with the deployment query URL), deploy another version, update the metadata, and publish to [Graph Explorer](https://thegraph.com/explorer) when you are ready. +> **Note**: The development query URL is limited to 3,000 queries per day. + Use Subgraph Studio to check the logs on the dashboard and look for any errors with your Subgraph. ## अपने Subgraph को प्रकाशित करें From 6b1dd07d130d63fc19e4de3e228c829aba26c71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:33 -0400 Subject: [PATCH 0228/1709] New translations quick-start.mdx (Romanian) --- website/src/pages/ro/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/quick-start.mdx b/website/src/pages/ro/token-api/quick-start.mdx index ef67bed88a5d..e49256d29a6d 100644 --- a/website/src/pages/ro/token-api/quick-start.mdx +++ b/website/src/pages/ro/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 06c2fef117eac6833f4925d7b6eda1d8bae3a7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:34 -0400 Subject: [PATCH 0229/1709] New translations quick-start.mdx (French) --- website/src/pages/fr/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/quick-start.mdx b/website/src/pages/fr/token-api/quick-start.mdx index 40452d9f419a..6ab65ce4c573 100644 --- a/website/src/pages/fr/token-api/quick-start.mdx +++ b/website/src/pages/fr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Démarrage rapide The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prérequis From e8cde648af5ec192686c4ef862826dfc4e292e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:36 -0400 Subject: [PATCH 0230/1709] New translations quick-start.mdx (Spanish) --- website/src/pages/es/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/quick-start.mdx b/website/src/pages/es/token-api/quick-start.mdx index 1af940b5b68f..74c1089a3314 100644 --- a/website/src/pages/es/token-api/quick-start.mdx +++ b/website/src/pages/es/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Comienzo Rapido The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 0c982c33bd4684a780bca891bb24d4fc2eb9a90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:37 -0400 Subject: [PATCH 0231/1709] New translations quick-start.mdx (Arabic) --- website/src/pages/ar/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/quick-start.mdx b/website/src/pages/ar/token-api/quick-start.mdx index ff1a58015fc0..139c735421a8 100644 --- a/website/src/pages/ar/token-api/quick-start.mdx +++ b/website/src/pages/ar/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: بداية سريعة The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From ae23eedc6f16af4177f2dd043a73de1458af6511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:38 -0400 Subject: [PATCH 0232/1709] New translations quick-start.mdx (Czech) --- website/src/pages/cs/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/quick-start.mdx b/website/src/pages/cs/token-api/quick-start.mdx index 454ffd30b02f..caadce5531e1 100644 --- a/website/src/pages/cs/token-api/quick-start.mdx +++ b/website/src/pages/cs/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Rychlé spuštění The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From ae64e9b9d06b51653b14e945397ab8465eecfadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:40 -0400 Subject: [PATCH 0233/1709] New translations quick-start.mdx (German) --- website/src/pages/de/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/quick-start.mdx b/website/src/pages/de/token-api/quick-start.mdx index b4074258c581..489da5b14760 100644 --- a/website/src/pages/de/token-api/quick-start.mdx +++ b/website/src/pages/de/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Schnellstart The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Voraussetzungen From 34e41fcff91bd821ca5889873e812d9b646986fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:41 -0400 Subject: [PATCH 0234/1709] New translations quick-start.mdx (Italian) --- website/src/pages/it/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/quick-start.mdx b/website/src/pages/it/token-api/quick-start.mdx index ef67bed88a5d..e49256d29a6d 100644 --- a/website/src/pages/it/token-api/quick-start.mdx +++ b/website/src/pages/it/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 8ffcec0a6f0c6b92ecefe8f35fc99d6e753ad074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:42 -0400 Subject: [PATCH 0235/1709] New translations quick-start.mdx (Japanese) --- website/src/pages/ja/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/quick-start.mdx b/website/src/pages/ja/token-api/quick-start.mdx index 059a2f43984d..494ca60a4c1f 100644 --- a/website/src/pages/ja/token-api/quick-start.mdx +++ b/website/src/pages/ja/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: クイックスタート The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 3686d3acf6a0d6c937329877c7a152aa0b642380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:44 -0400 Subject: [PATCH 0236/1709] New translations quick-start.mdx (Korean) --- website/src/pages/ko/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/quick-start.mdx b/website/src/pages/ko/token-api/quick-start.mdx index ef67bed88a5d..e49256d29a6d 100644 --- a/website/src/pages/ko/token-api/quick-start.mdx +++ b/website/src/pages/ko/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 6453bde23b611c36d499850cacfb3ad6d0a6f436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:45 -0400 Subject: [PATCH 0237/1709] New translations quick-start.mdx (Dutch) --- website/src/pages/nl/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/quick-start.mdx b/website/src/pages/nl/token-api/quick-start.mdx index b2c498a85f80..276fcc065ba3 100644 --- a/website/src/pages/nl/token-api/quick-start.mdx +++ b/website/src/pages/nl/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Snelle Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From bbcf52d8558e262be868de574dfa5597a4408502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:46 -0400 Subject: [PATCH 0238/1709] New translations quick-start.mdx (Polish) --- website/src/pages/pl/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/quick-start.mdx b/website/src/pages/pl/token-api/quick-start.mdx index 20663af633f4..98ed4f3fd724 100644 --- a/website/src/pages/pl/token-api/quick-start.mdx +++ b/website/src/pages/pl/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: " Na start" The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From 421e72fbe421ce2eecb7bcfa38f400f0a99eacc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:48 -0400 Subject: [PATCH 0239/1709] New translations quick-start.mdx (Portuguese) --- website/src/pages/pt/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/quick-start.mdx b/website/src/pages/pt/token-api/quick-start.mdx index 6ffc93937703..fe1907483c23 100644 --- a/website/src/pages/pt/token-api/quick-start.mdx +++ b/website/src/pages/pt/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Começo Rápido The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Pré-requisitos From d4f07e922005da9d09c1a15b5b33d234acdd1e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:49 -0400 Subject: [PATCH 0240/1709] New translations quick-start.mdx (Russian) --- website/src/pages/ru/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/quick-start.mdx b/website/src/pages/ru/token-api/quick-start.mdx index 59d60750c989..0930c3ceab94 100644 --- a/website/src/pages/ru/token-api/quick-start.mdx +++ b/website/src/pages/ru/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Быстрый старт The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Предварительные требования From 374d2023912e0d63ceed9744f30acbe142807053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:51 -0400 Subject: [PATCH 0241/1709] New translations quick-start.mdx (Swedish) --- website/src/pages/sv/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/quick-start.mdx b/website/src/pages/sv/token-api/quick-start.mdx index 4fabbaccb36e..14d8f13e5df7 100644 --- a/website/src/pages/sv/token-api/quick-start.mdx +++ b/website/src/pages/sv/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Snabbstart The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From ccca7b046e46856352c96f0c0e6a6fdc0dd6a204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:52 -0400 Subject: [PATCH 0242/1709] New translations quick-start.mdx (Turkish) --- website/src/pages/tr/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/quick-start.mdx b/website/src/pages/tr/token-api/quick-start.mdx index b321575025e9..6b4c6f410687 100644 --- a/website/src/pages/tr/token-api/quick-start.mdx +++ b/website/src/pages/tr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Hızlı Başlangıç The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From a20c1b2a4a636f4d98048dbfdbe225fea4cb7714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:53 -0400 Subject: [PATCH 0243/1709] New translations quick-start.mdx (Ukrainian) --- website/src/pages/uk/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/quick-start.mdx b/website/src/pages/uk/token-api/quick-start.mdx index ea80878a9a0d..316cb901e8f6 100644 --- a/website/src/pages/uk/token-api/quick-start.mdx +++ b/website/src/pages/uk/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Швидкий старт The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From de953ce3978e4298a0e8d90c5c2a7ebb93815402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:54 -0400 Subject: [PATCH 0244/1709] New translations quick-start.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/quick-start.mdx b/website/src/pages/zh/token-api/quick-start.mdx index 314459353ca6..9974b7bc59cf 100644 --- a/website/src/pages/zh/token-api/quick-start.mdx +++ b/website/src/pages/zh/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: 快速开始 The Graph的 代币API允许您通过 GET 请求访问区块链代币信息。 本指南旨在帮助您快速将 Token API 整合到您的应用程序中。 -代币API提供了访问网链代币数据的机会,包括余额、持有人、详细的代币元数据和历史传输。 此 API 还使用 Model Context 协议 (MCP) 来丰富原始区块链数据,并通过使用 Claude 等的 AI 工具来丰富相关联的洞察力。 +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## 先决条件 From d4325d4ea94fec8b30a12e3afd9a44c5fd828369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:55 -0400 Subject: [PATCH 0245/1709] New translations quick-start.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/quick-start.mdx b/website/src/pages/ur/token-api/quick-start.mdx index d3e0152a21b7..e0a75ff01acf 100644 --- a/website/src/pages/ur/token-api/quick-start.mdx +++ b/website/src/pages/ur/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: فورا شروع کریں The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From abd71cf91f1250dfb6da82971b34b40dc2ca42e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:57 -0400 Subject: [PATCH 0246/1709] New translations quick-start.mdx (Vietnamese) --- website/src/pages/vi/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/quick-start.mdx b/website/src/pages/vi/token-api/quick-start.mdx index 93a5eae55597..7d9e37531ca4 100644 --- a/website/src/pages/vi/token-api/quick-start.mdx +++ b/website/src/pages/vi/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Bắt đầu nhanh The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From bc0ad8118357d173b1985618aa1e7c0547e7e67e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:58 -0400 Subject: [PATCH 0247/1709] New translations quick-start.mdx (Marathi) --- website/src/pages/mr/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/quick-start.mdx b/website/src/pages/mr/token-api/quick-start.mdx index 9b6f9bb125a6..664228134ba7 100644 --- a/website/src/pages/mr/token-api/quick-start.mdx +++ b/website/src/pages/mr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: क्विक स्टार्ट The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites From fb1e84f6c39e130ac2060c5fffced5da78d6b3be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 22 Apr 2025 20:52:59 -0400 Subject: [PATCH 0248/1709] New translations quick-start.mdx (Hindi) --- website/src/pages/hi/token-api/quick-start.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/quick-start.mdx b/website/src/pages/hi/token-api/quick-start.mdx index 494416568dc4..6a1848aeda79 100644 --- a/website/src/pages/hi/token-api/quick-start.mdx +++ b/website/src/pages/hi/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including balances, holders, detailed token metadata, and historical transfers. This API also uses the Model Context Protocol (MCP) to enrich raw blockchain data with contextual insights using AI tools, such as Claude. +The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## आवश्यक शर्तें From 9fc139227169b01ec412a5d5db3036dd9f1edc43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:33 -0400 Subject: [PATCH 0249/1709] New translations graphql-api.mdx (Romanian) --- .../ro/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx index e10201771989..6ff6a8777ce9 100644 --- a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | Description | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | Description | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From e6497c3c3198396a90d0047f87d3ef34120dab27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:34 -0400 Subject: [PATCH 0250/1709] New translations graphql-api.mdx (French) --- .../fr/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx index ae81b6e5427c..912598c2fd97 100644 --- a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: API GraphQL --- -Découvrez l'API de requête GraphQL utilisée dans The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## Qu'est-ce que GraphQL ? [GraphQL](https://graphql.org/learn/) est un langage d'interrogation pour les API et un moteur d'exécution pour l'exécution de ces requêtes avec vos données existantes. Le graphe utilise GraphQL pour interroger les subgraphs. -Pour comprendre le rôle plus important joué par GraphQL, consultez [développer](/subgraphs/developing/introduction/) et [créer un subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Requêtes avec GraphQL -Dans votre schéma Subgraph, vous définissez des types appelés `Entities`. Pour chaque type `Entity`, les champs `entity` et `entities` seront générés sur le type `Query` de premier niveau. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note : `query` n'a pas besoin d'être inclus au début de la requête `graphql` lors de l'utilisation de The Graph. +### Example Queries -### Exemples +> Note : `query` n'a pas besoin d'être inclus au début de la requête `graphql` lors de l'utilisation de The Graph. Requête pour une seule entité `Token` définie dans votre schéma : @@ -44,7 +58,7 @@ Interroge toutes les entités `Token` : ### Tri -Lors de l'interrogation d'une collection, vous pouvez : +When querying a collection, you can: - Utilisez le paramètre `orderBy` pour trier les données en fonction d'un attribut spécifique. - Utilisez `orderDirection` pour spécifier la direction du tri, `asc` pour ascendant ou `desc` pour descendant. @@ -60,7 +74,7 @@ Lors de l'interrogation d'une collection, vous pouvez : } ``` -#### Exemple de tri d'entités imbriquées +#### Example for Nested Entity Sorting Depuis Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), les entités peuvent être triées sur la base des entités imbriquées. @@ -90,7 +104,7 @@ Lors de l'interrogation d'une collection, il est préférable de : - Utilisez le paramètre `skip` pour sauter des entités et paginer. Par exemple, `first:100` affiche les 100 premières entités et `first:100, skip:100` affiche les 100 entités suivantes. - Évitez d'utiliser les valeurs `skip` dans les requêtes car elles sont généralement peu performantes. Pour récupérer un grand nombre d'éléments, il est préférable de parcourir les entités en fonction d'un attribut, comme indiqué dans l'exemple précédent. -#### Exemple d'utilisation de `first` +#### Example Using `first` Interroger les 10 premiers tokens : @@ -103,9 +117,9 @@ Interroger les 10 premiers tokens : } ``` -Pour rechercher des groupes d'entités au milieu d'une collection, le paramètre `skip` peut être utilisé en conjonction avec le paramètre `first` pour sauter un nombre spécifié d'entités en commençant par le début de la collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Exemple utilisant `first` et `skip` +#### Example Using `first` and `skip` Interroger 10 entités `Token`, décalées de 10 places par rapport au début de la collection : @@ -118,7 +132,7 @@ Interroger 10 entités `Token`, décalées de 10 places par rapport au début de } ``` -#### Exemple utilisant `first` et `id_ge` +#### Example Using `first` and `id_ge` Si un client a besoin de récupérer un grand nombre d'entités, il est plus performant de baser les requêtes sur un attribut et de filtrer par cet attribut. Par exemple, un client pourrait récupérer un grand nombre de jetons en utilisant cette requête : @@ -138,9 +152,9 @@ La première fois, il enverra la requête avec `lastID = ""`, et pour les requê - Vous pouvez utiliser le paramètre `where` dans vos requêtes pour filtrer les différentes propriétés. - Vous pouvez filtrer sur plusieurs valeurs dans le paramètre `where`. -#### Exemple d'utilisation de `where` +#### Using `where` Filtering -Défis de la requête avec un résultat `failed` : +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -156,7 +170,7 @@ Défis de la requête avec un résultat `failed` : Vous pouvez utiliser des suffixes comme `_gt`, `_lte` pour comparer les valeurs : -#### Exemple de filtrage de plage +#### Range Filtering ```graphql { @@ -168,7 +182,7 @@ Vous pouvez utiliser des suffixes comme `_gt`, `_lte` pour comparer les valeurs } ``` -#### Exemple de filtrage par bloc +#### Block Filtering Vous pouvez également filtrer les entités qui ont été mises à jour dans ou après un bloc spécifié avec `_change_block(number_gte : Int)`. @@ -184,7 +198,7 @@ Cela peut être utile si vous cherchez à récupérer uniquement les entités qu } ``` -#### Exemple de filtrage d'entités imbriquées +#### Nested Entity Filtering Le filtrage sur la base d'entités imbriquées est possible dans les champs avec le suffixe `_`. @@ -202,11 +216,11 @@ Cela peut être utile si vous souhaitez récupérer uniquement les entités dont } ``` -#### Opérateurs logiques +### Logical Operators Depuis Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), vous pouvez regrouper plusieurs paramètres dans le même argument `where` en utilisant les opérateurs `and` ou `or` pour filtrer les résultats en fonction de plusieurs critères. -##### L'opérateur `AND` +#### Using `and` Operator L'exemple suivant filtre les défis avec `outcome` `succeeded` et `number` supérieur ou égal à `100`. @@ -236,7 +250,7 @@ L'exemple suivant filtre les défis avec `outcome` `succeeded` et `number` supé > } > ``` -##### L'opérateur `OR` +#### Using `or` Operator L'exemple suivant filtre les défis avec `outcome` `succeeded` ou `number` supérieur ou égal à `100`. @@ -252,7 +266,7 @@ L'exemple suivant filtre les défis avec `outcome` `succeeded` ou `number` supé } ``` -> **Note** : Lors de l'élaboration des requêtes, il est important de prendre en compte l'impact sur les performances de l'utilisation de l'opérateur `or`. Si `or` peut être un outil utile pour élargir les résultats d'une recherche, il peut aussi avoir des coûts importants. L'un des principaux problèmes de l'opérateur `or` est qu'il peut ralentir les requêtes. En effet, `or` oblige la base de données à parcourir plusieurs index, ce qui peut prendre beaucoup de temps. Pour éviter ces problèmes, il est recommandé aux développeurs d'utiliser les opérateurs and au lieu de or chaque fois que cela est possible. Cela permet un filtrage plus précis et peut conduire à des requêtes plus rapides et plus précises. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Tous les filtres @@ -289,7 +303,7 @@ En outre, les filtres globaux suivants sont disponibles en tant que partie de l' _change_block(numéro_gte : Int) ``` -### Interrogation des états précédents +### Time-travel Queries Vous pouvez interroger l'état de vos entités non seulement pour le dernier bloc, ce qui est le cas par défaut, mais aussi pour un bloc arbitraire dans le passé. Le bloc auquel une requête doit se produire peut être spécifié soit par son numéro de bloc, soit par son hash de bloc, en incluant un argument `block` dans les champs de niveau supérieur des requêtes. @@ -297,7 +311,7 @@ Le résultat d'une telle requête ne changera pas au fil du temps, c'est-à-dire > Remarque : l'implémentation actuelle est encore sujette à certaines limitations qui pourraient violer ces garanties. L'implémentation ne permet pas toujours de déterminer si un bloc donné n'est pas du tout sur la chaîne principale ou si le résultat d'une requête par bloc pour un bloc qui n'est pas encore considéré comme final peut être influencé par une réorganisation du bloc qui a lieu en même temps que la requête. Elles n'affectent pas les résultats des requêtes par hash de bloc lorsque le bloc est final et que l'on sait qu'il se trouve sur la chaîne principale. [Ce numéro](https://github.com/graphprotocol/graph-node/issues/1405) explique ces limitations en détail. -#### Exemple +#### Example Time-travel Queries ```graphql { @@ -313,8 +327,6 @@ Le résultat d'une telle requête ne changera pas au fil du temps, c'est-à-dire Cette requête renverra les entités `Challenge` et les entités `Application` qui leur sont associées, telles qu'elles existaient directement après le traitement du bloc numéro 8 000 000. -#### Exemple - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -329,24 +341,24 @@ Cette requête renverra les entités `Challenge` et les entités `Application` q Cette requête renverra les entités `Challenge`, et leurs entités `Application` associées, telles qu'elles existaient directement après le traitement du bloc avec le hash donné. -### Requêtes de recherche en texte intégral +### Full-text Search Queries -Les champs de recherche intégralement en texte fournissent une API de recherche textuelle expressive qui peut être ajoutée au schéma du subgraph et personnalisée. Reportez-vous à [Définir des champs de recherche en texte intégral](/developing/creating-a-subgraph/#defining-fulltext-search-fields) pour ajouter la recherche intégralement en texte à votre subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Les requêtes de recherche en texte intégral comportent un champ obligatoire, `text`, pour fournir les termes de la recherche. Plusieurs opérateurs spéciaux de texte intégral peuvent être utilisés dans ce champ de recherche `text`. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Opérateurs de recherche en texte intégral : +Full-text search operators: -| Symbole | Opérateur | Description | -| --- | --- | --- | -| `&` | `And` | Pour combiner plusieurs termes de recherche dans un filtre pour les entités incluant tous les termes fournis | -| | | `Or` | Les requêtes comportant plusieurs termes de recherche séparés par l'opérateur ou renverront toutes les entités correspondant à l'un des termes fournis | -| `<->` | `Follow by` | Spécifiez la distance entre deux mots. | -| `:*` | `Prefix` | Utilisez le terme de recherche de préfixe pour trouver les mots dont le préfixe correspond (2 caractères requis.) | +| Symbole | Opérateur | Description | | +| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Pour combiner plusieurs termes de recherche dans un filtre pour les entités incluant tous les termes fournis | | +| | | `Or` | Les requêtes comportant plusieurs termes de recherche séparés par l'opérateur ou renverront toutes les entités correspondant à l'un des termes fournis | +| `<->` | `Follow by` | Spécifiez la distance entre deux mots. | | +| `:*` | `Prefix` | Utilisez le terme de recherche de préfixe pour trouver les mots dont le préfixe correspond (2 caractères requis.) | | -#### Exemples +#### Full-text Query Examples -En utilisant l'opérateur `ou`, cette requête filtrera les entités de blog ayant des variations d' "anarchism" ou "crumpet" dans leurs champs de texte intégral. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -359,7 +371,7 @@ En utilisant l'opérateur `ou`, cette requête filtrera les entités de blog aya } ``` -L'opérateur `follow by` spécifie un mot à une distance spécifique dans les documents en texte intégral. La requête suivante renverra tous les blogs contenant des variations de "decentralize" suivies de "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -372,7 +384,7 @@ L'opérateur `follow by` spécifie un mot à une distance spécifique dans les d } ``` -Combinez des opérateurs de texte intégral pour créer des filtres plus complexes. Avec un opérateur de recherche de prétexte combiné à un suivi de cet exemple, la requête fera correspondre toutes les entités de blog avec des mots commençant par « lou » suivi de « musique ». +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -389,20 +401,6 @@ Combinez des opérateurs de texte intégral pour créer des filtres plus complex Graph Node met en œuvre une validation [basée sur les spécifications](https://spec.graphql.org/October2021/#sec-Validation) des requêtes GraphQL qu'il reçoit à l'aide de [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), qui est basée sur l'implémentation de référence [graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Les requêtes qui échouent à une règle de validation sont accompagnées d'une erreur standard - consultez les [spécifications GraphQL](https://spec.graphql.org/October2021/#sec-Validation) pour en savoir plus. -## Schema - -Le schéma de vos sources de données, c'est-à-dire les types d'entités, les valeurs et les relations qui peuvent être interrogés, est défini dans le [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -Les schémas GraphQL définissent généralement des types racines pour les `queries`, les `subscriptions` et les `mutations`. The Graph ne prend en charge que les `requêtes`. Le type racine `Query` pour votre subgraph est automatiquement généré à partir du schéma GraphQL qui est inclus dans votre [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Remarque : notre API n'expose pas les mutations car les développeurs sont censés émettre des transactions directement contre la blockchain sous-jacente à partir de leurs applications. - -### Entities - -Tous les types GraphQL avec des directives `@entity` dans votre schéma seront traités comme des entités et doivent avoir un champ `ID`. - -> **Note:** Actuellement, tous les types de votre schéma doivent avoir une directive `@entity`. Dans le futur, nous traiterons les types n'ayant pas la directive `@entity` comme des objets de valeur, mais cela n'est pas encore pris en charge. - ### Métadonnées du Subgraph Tous les subgraphs ont un objet `_Meta_` auto-généré, qui permet d'accéder aux métadonnées du subgraph. Cet objet peut être interrogé comme suit : From e721963e3ca0e005100cd97a0fd88e10ed1fbe5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:35 -0400 Subject: [PATCH 0251/1709] New translations graphql-api.mdx (Spanish) --- .../es/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/es/subgraphs/querying/graphql-api.mdx b/website/src/pages/es/subgraphs/querying/graphql-api.mdx index 374291ce0a88..2ef3b093f4fe 100644 --- a/website/src/pages/es/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/es/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: API GraphQL --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entidades + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Esquema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Ejemplos +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Clasificación -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Ejemplo de filtrado de entidades anidadas +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Consulta los primeros 10 tokens: @@ -101,9 +115,9 @@ Consulta los primeros 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Ejemplo de filtrado de rango +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Ejemplo de filtrado de bloques +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Ejemplo de filtrado de entidades anidadas +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ Esto puede ser útil si estás buscando obtener solo entidades cuyas entidades d } ``` -#### Operadores lógicos +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Todos los filtros @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Consultas sobre Time-travel +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Ejemplo +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Ejemplo - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Consultas de Búsqueda de Texto Completo +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Operadores de búsqueda de texto completo: +Full-text search operators: -| Símbolo | Operador | Descripción | -| --- | --- | --- | -| `&` | `And` | Para combinar varios términos de búsqueda en un filtro para entidades que incluyen todos los términos proporcionados | -| | | `Or` | Las consultas con varios términos de búsqueda separados por o el operador devolverá todas las entidades que coincidan con cualquiera de los términos proporcionados | -| `<->` | `Follow by` | Especifica la distancia entre dos palabras. | -| `:*` | `Prefix` | Utilice el término de búsqueda del prefijo para encontrar palabras cuyo prefijo coincida (se requieren 2 caracteres.) | +| Símbolo | Operador | Descripción | | +| ------- | ----------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Para combinar varios términos de búsqueda en un filtro para entidades que incluyen todos los términos proporcionados | | +| | | `Or` | Las consultas con varios términos de búsqueda separados por o el operador devolverá todas las entidades que coincidan con cualquiera de los términos proporcionados | +| `<->` | `Follow by` | Especifica la distancia entre dos palabras. | | +| `:*` | `Prefix` | Utilice el término de búsqueda del prefijo para encontrar palabras cuyo prefijo coincida (se requieren 2 caracteres.) | | -#### Ejemplos +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combina operadores de texto completo para crear filtros más complejos. Con un operador de búsqueda de pretexto combinado con una consulta de seguimiento de este ejemplo, se buscarán coincidencias con todas las entidades del blog con palabras que comiencen con "lou" seguido de "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combina operadores de texto completo para crear filtros más complejos. Con un o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Esquema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entidades - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Metadatos del subgrafo All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 36fe1cc05d0dd4d8a7a184eb6b7fdb058a90f4d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:37 -0400 Subject: [PATCH 0252/1709] New translations graphql-api.mdx (Arabic) --- .../ar/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx index 14e11ff80306..5f5a78a7e767 100644 --- a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### المخطط + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| رمز | عامل التشغيل | الوصف | -| --- | --- | --- | -| `&` | `And` | لدمج عبارات بحث متعددة في فلتر للكيانات التي تتضمن جميع العبارات المتوفرة | -| | | `Or` | الاستعلامات التي تحتوي على عبارات بحث متعددة مفصولة بواسطة عامل التشغيل or ستعيد جميع الكيانات المتطابقة من أي عبارة متوفرة | -| `<->` | `Follow by` | يحدد المسافة بين كلمتين. | -| `:*` | `Prefix` | يستخدم عبارة البحث prefix للعثور على الكلمات التي تتطابق بادئتها (مطلوب حرفان.) | +| رمز | عامل التشغيل | الوصف | | +| ----- | ------------ | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | لدمج عبارات بحث متعددة في فلتر للكيانات التي تتضمن جميع العبارات المتوفرة | | +| | | `Or` | الاستعلامات التي تحتوي على عبارات بحث متعددة مفصولة بواسطة عامل التشغيل or ستعيد جميع الكيانات المتطابقة من أي عبارة متوفرة | +| `<->` | `Follow by` | يحدد المسافة بين كلمتين. | | +| `:*` | `Prefix` | يستخدم عبارة البحث prefix للعثور على الكلمات التي تتطابق بادئتها (مطلوب حرفان.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## المخطط - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 9359522a3271c6ead8661ef8b7c5488b7424b24f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:38 -0400 Subject: [PATCH 0253/1709] New translations graphql-api.mdx (Czech) --- .../cs/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx index e5dc52ccce1f..6997047e6da4 100644 --- a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Příklady +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Třídění -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Příklad vnořeného třídění entit +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Dotaz na prvních 10 tokenů: @@ -101,9 +115,9 @@ Dotaz na prvních 10 tokenů: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Příklad filtrování rozsahu +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Příklad pro filtrování bloků +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Příklad vnořeného filtrování entit +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ To může být užitečné, pokud chcete načíst pouze entity, jejichž entity } ``` -#### Logické operátory +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Všechny filtry @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Dotazy na cestování čase +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Příklad +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Příklad - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltextové Vyhledávání dotazy +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Operátory fulltextového vyhledávání: +Full-text search operators: -| Symbol | Operátor | Popis | -| --- | --- | --- | -| `&` | `And` | Pro kombinaci více vyhledávacích výrazů do filtru pro entity, které obsahují všechny zadané výrazy | -| | | `Or` | Dotazy s více hledanými výrazy oddělenými operátorem nebo vrátí všechny entity, které odpovídají některému z uvedených výrazů | -| `<->` | `Follow by` | Zadejte vzdálenost mezi dvěma slovy. | -| `:*` | `Prefix` | Pomocí předponového výrazu vyhledejte slova, jejichž předpona se shoduje (vyžadovány 2 znaky) | +| Symbol | Operátor | Popis | | +| ------ | ----------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Pro kombinaci více vyhledávacích výrazů do filtru pro entity, které obsahují všechny zadané výrazy | | +| | | `Or` | Dotazy s více hledanými výrazy oddělenými operátorem nebo vrátí všechny entity, které odpovídají některému z uvedených výrazů | +| `<->` | `Follow by` | Zadejte vzdálenost mezi dvěma slovy. | | +| `:*` | `Prefix` | Pomocí předponového výrazu vyhledejte slova, jejichž předpona se shoduje (vyžadovány 2 znaky) | | -#### Příklady +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Kombinací fulltextových operátorů můžete vytvářet složitější filtry. S operátorem pretextového vyhledávání v kombinaci s operátorem follow by bude tento příklad dotazu odpovídat všem entitá blog se slovy začínajícími na "lou" a následovanými slovem "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Kombinací fulltextových operátorů můžete vytvářet složitější filtry. Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Metadata podgrafů All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 1c81afdfdc4d310a3d248bbd93aa34fe94ee6b7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:39 -0400 Subject: [PATCH 0254/1709] New translations graphql-api.mdx (German) --- .../de/subgraphs/querying/graphql-api.mdx | 108 ++++++++---------- 1 file changed, 50 insertions(+), 58 deletions(-) diff --git a/website/src/pages/de/subgraphs/querying/graphql-api.mdx b/website/src/pages/de/subgraphs/querying/graphql-api.mdx index effc56357802..1fde91ddab9b 100644 --- a/website/src/pages/de/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/de/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL-API --- -Erfahren Sie mehr über die GraphQL Query API, die in The Graph verwendet wird. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## Was ist GraphQL? [GraphQL] (https://graphql.org/learn/) ist eine Abfragesprache für APIs und eine Laufzeitumgebung für die Ausführung dieser Abfragen mit Ihren vorhandenen Daten. The Graph verwendet GraphQL zur Abfrage von Subgraphen. -Um die größere Rolle, die GraphQL spielt, zu verstehen, lesen Sie [Entwickeln](/subgraphs/entwickeln/einfuehrung/) und [Erstellen eines Subgraphen](/entwickeln/einen-subgraph-erstellen/). +## Core Concepts + +### Entitäten + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Abfragen mit GraphQL -In Ihrem Subgraph-Schema definieren Sie Typen namens `Entities`. Für jeden `Entity`-Typ werden `entity`- und `entities`-Felder auf der obersten Ebene des `Query`-Typs erzeugt. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Hinweis: Bei der Verwendung von The Graph muss `query` nicht am Anfang der `graphql`-Abfrage stehen. +### Example Queries -### Beispiele +> Hinweis: Bei der Verwendung von The Graph muss `query` nicht am Anfang der `graphql`-Abfrage stehen. Abfrage nach einer einzelnen, in Ihrem Schema definierten Entität `Token`: @@ -44,7 +58,7 @@ Abfrage aller `Token`-Entitäten: ### Sortierung -Wenn Sie eine Sammlung abfragen, können Sie: +When querying a collection, you can: - den Parameter `orderBy` verwenden, um nach einem bestimmten Attribut zu sortieren. - `orderDirection` verwenden, um die Sortierrichtung anzugeben, `asc` für aufsteigend oder `desc` für absteigend. @@ -60,7 +74,7 @@ Wenn Sie eine Sammlung abfragen, können Sie: } ``` -#### Beispiel für die Sortierung verschachtelter Entitäten +#### Example for Nested Entity Sorting Ab Graph Node [`v0.30.0`] (https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) können Entitäten auf der Basis von verschachtelten Entitäten sortiert werden. @@ -88,7 +102,7 @@ Wenn Sie eine Sammlung abfragen, ist es am besten, dies zu tun: - Verwenden Sie den Parameter `skip`, um Entitäten zu überspringen und zu paginieren. Zum Beispiel zeigt `first:100` die ersten 100 Entitäten und `first:100, skip:100` zeigt die nächsten 100 Entitäten. - Vermeiden Sie die Verwendung von `skip`-Werten in Abfragen, da diese im Allgemeinen schlecht funktionieren. Um eine große Anzahl von Elementen abzurufen, ist es am besten, die Entitäten auf der Grundlage eines Attributs zu durchblättern, wie im obigen Beispiel gezeigt. -#### Beispiel mit `first` +#### Example Using `first` Die Abfrage für die ersten 10 Token: @@ -101,9 +115,9 @@ Die Abfrage für die ersten 10 Token: } ``` -Um nach Gruppen von Entitäten in der Mitte einer Sammlung zu suchen, kann der Parameter `skip` in Verbindung mit dem Parameter `first` verwendet werden, um eine bestimmte Anzahl von Entitäten zu überspringen, beginnend am Anfang der Sammlung. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Beispiel mit `first` und `skip` +#### Example Using `first` and `skip` Abfrage von 10 „Token“-Entitäten, versetzt um 10 Stellen vom Beginn der Sammlung: @@ -116,7 +130,7 @@ Abfrage von 10 „Token“-Entitäten, versetzt um 10 Stellen vom Beginn der Sam } ``` -#### Beispiel mit `first` und `id_ge` +#### Example Using `first` and `id_ge` Wenn ein Client eine große Anzahl von Entitäten abrufen muss, ist es leistungsfähiger, Abfragen auf ein Attribut zu stützen und nach diesem Attribut zu filtern. Zum Beispiel könnte ein Client mit dieser Abfrage eine große Anzahl von Token abrufen: @@ -136,9 +150,9 @@ Beim ersten Mal würde es die Abfrage mit `lastID = „“` senden, und bei nach - Sie können den Parameter `where` in Ihren Abfragen verwenden, um nach verschiedenen Eigenschaften zu filtern. - Sie können nach mehreren Werten innerhalb des Parameters `where` filtern. -#### Beispiel mit `where` +#### Using `where` Filtering -Abfrage von Herausforderungen mit `failed`-Ergebnis: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Abfrage von Herausforderungen mit `failed`-Ergebnis: Sie können Suffixe wie `_gt`, `_lte` für den Wertevergleich verwenden: -#### Beispiel für Range-Filterung +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ Sie können Suffixe wie `_gt`, `_lte` für den Wertevergleich verwenden: } ``` -#### Beispiel für Block-Filterung +#### Block Filtering Sie können auch Entitäten filtern, die in oder nach einem bestimmten Block mit `_change_block(number_gte: Int)` aktualisiert wurden. @@ -182,7 +196,7 @@ Dies kann nützlich sein, wenn Sie nur Entitäten abrufen möchten, die sich ge } ``` -#### Beispiel für die Filterung verschachtelter Entitäten +#### Nested Entity Filtering Die Filterung nach verschachtelten Entitäten ist in den Feldern mit dem Suffix `_`möglich. @@ -200,11 +214,11 @@ Dies kann nützlich sein, wenn Sie nur die Entitäten abrufen möchten, deren un } ``` -#### Logische Operatoren +### Logical Operators Seit Graph Node [`v0.30.0`] (https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) können Sie mehrere Parameter im selben `where`-Argument gruppieren, indem Sie die `und`- oder `oder`-Operatoren verwenden, um Ergebnisse nach mehr als einem Kriterium zu filtern. -##### Operator `AND` +#### Using `and` Operator Das folgende Beispiel filtert nach Challenges mit `outcome` `succeeded` und `number` größer als oder gleich `100`. @@ -234,7 +248,7 @@ Das folgende Beispiel filtert nach Challenges mit `outcome` `succeeded` und `num > } > ``` -##### Operator `OR` +#### Using `or` Operator Das folgende Beispiel filtert nach Herausforderungen mit `outcome` `succeeded` oder `number` größer oder gleich `100`. @@ -250,13 +264,7 @@ Das folgende Beispiel filtert nach Herausforderungen mit `outcome` `succeeded` o } ``` -> Hinweis: Beim Erstellen von Abfragen ist es wichtig, die Auswirkungen der Verwendung des -> or-Operators auf die Leistung zu berücksichtigen. Obwohl or ein nützliches Tool zum -> Erweitern von Suchergebnissen sein kann, kann es auch erhebliche Kosten verursachen. Eines der Hauptprobleme mit -> or ist, dass Abfragen dadurch verlangsamt werden können. Dies liegt daran, dass or -> erfordert, dass die Datenbank mehrere Indizes durchsucht, was ein zeitaufwändiger Prozess sein kann. Um diese Probleme -> zu vermeiden, wird empfohlen, dass Entwickler and -Operatoren anstelle von oder verwenden, wann immer dies möglich -> ist. Dies ermöglicht eine präzisere Filterung und kann zu schnelleren und genaueren Abfragen führen. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Alle Filter @@ -293,7 +301,7 @@ Darüber hinaus sind die folgenden globalen Filter als Teil des Arguments `where _change_block(number_gte: Int) ``` -### Time-travel-Anfragen +### Time-travel Queries Sie können den Zustand Ihrer Entitäten nicht nur für den letzten Block abfragen, was der Standard ist, sondern auch für einen beliebigen Block in der Vergangenheit. Der Block, zu dem eine Abfrage erfolgen soll, kann entweder durch seine Blocknummer oder seinen Block-Hash angegeben werden, indem ein `block`-Argument in die Toplevel-Felder von Abfragen aufgenommen wird. @@ -301,7 +309,7 @@ Das Ergebnis einer solchen Abfrage wird sich im Laufe der Zeit nicht ändern, d. > Hinweis: Die derzeitige Implementierung unterliegt noch bestimmten Beschränkungen, die diese Garantien verletzen könnten. Die Implementierung kann nicht immer erkennen, dass ein bestimmter Block-Hash überhaupt nicht in der Hauptkette ist, oder ob ein Abfrageergebnis durch einen Block-Hash für einen Block, der noch nicht als endgültig gilt, durch eine gleichzeitig mit der Abfrage laufende Blockumstrukturierung beeinflusst werden könnte. Sie haben keinen Einfluss auf die Ergebnisse von Abfragen per Block-Hash, wenn der Block endgültig ist und sich bekanntermaßen in der Hauptkette befindet. In [Diese Ausgabe] (https://github.com/graphprotocol/graph-node/issues/1405) werden diese Einschränkungen im Detail erläutert. -#### Beispiel +#### Example Time-travel Queries ```graphql { @@ -317,8 +325,6 @@ Das Ergebnis einer solchen Abfrage wird sich im Laufe der Zeit nicht ändern, d. Diese Abfrage gibt die `Challenge`-Entitäten und die zugehörigen `Application`-Entitäten so zurück, wie sie unmittelbar nach der Verarbeitung von Block Nummer 8.000.000 bestanden. -#### Beispiel - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -333,24 +339,24 @@ Diese Abfrage gibt die `Challenge`-Entitäten und die zugehörigen `Application` Diese Abfrage gibt `Challenge`-Entitäten und die zugehörigen `Application`-Entitäten zurück, wie sie unmittelbar nach der Verarbeitung des Blocks mit dem angegebenen Hash vorhanden waren. -### Volltext-Suchanfragen +### Full-text Search Queries -Volltextsuchabfrage-Felder bieten eine aussagekräftige Textsuch-API, die dem Subgraph-Schema hinzugefügt und angepasst werden kann. Siehe [Definieren von Volltext-Suchfeldern](/developing/creating-a-subgraph/#defining-fulltext-search-fields), um die Volltextsuche zu Ihrem Subgraph hinzuzufügen. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Volltextsuchanfragen haben ein erforderliches Feld, `text`, für die Eingabe von Suchbegriffen. Mehrere spezielle Volltext-Operatoren sind verfügbar, die in diesem `text`-Suchfeld verwendet werden können. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Volltext-Suchanfragen: +Full-text search operators: -| Symbol | Operator | Beschreibung | -| --- | --- | --- | -| `&` | `And` | Zum Kombinieren mehrerer Suchbegriffe zu einem Filter für Entitäten, die alle bereitgestellten Begriffe enthalten | -| | | `Or` | Abfragen mit mehreren durch den Operator or getrennten Suchbegriffen geben alle Entitäten mit einer Übereinstimmung mit einem der bereitgestellten Begriffe zurück | -| `<->` | `Follow by` | Geben Sie den Abstand zwischen zwei Wörtern an. | -| `:*` | `Prefix` | Verwenden Sie den Präfix-Suchbegriff, um Wörter zu finden, deren Präfix übereinstimmt (2 Zeichen erforderlich) | +| Symbol | Operator | Beschreibung | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Zum Kombinieren mehrerer Suchbegriffe zu einem Filter für Entitäten, die alle bereitgestellten Begriffe enthalten | | +| | | `Or` | Abfragen mit mehreren durch den Operator or getrennten Suchbegriffen geben alle Entitäten mit einer Übereinstimmung mit einem der bereitgestellten Begriffe zurück | +| `<->` | `Follow by` | Geben Sie den Abstand zwischen zwei Wörtern an. | | +| `:*` | `Prefix` | Verwenden Sie den Präfix-Suchbegriff, um Wörter zu finden, deren Präfix übereinstimmt (2 Zeichen erforderlich) | | -#### Beispiele +#### Full-text Query Examples -Mit dem Operator `or` filtert diese Abfrage nach Blog-Entitäten mit Variationen von entweder "anarchism" oder „crumpet“ in ihren Volltextfeldern. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -363,7 +369,7 @@ Mit dem Operator `or` filtert diese Abfrage nach Blog-Entitäten mit Variationen } ``` -Der Operator `follow by` gibt Wörter an, die in den Volltextdokumenten einen bestimmten Abstand zueinander haben. Die folgende Abfrage gibt alle Blogs mit Variationen von „decentralize“ gefolgt von „philosophy“ zurück +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -376,7 +382,7 @@ Der Operator `follow by` gibt Wörter an, die in den Volltextdokumenten einen be } ``` -Kombinieren Sie Volltextoperatoren, um komplexere Filter zu erstellen. Mit einem Präfix-Suchoperator in Kombination mit "follow by" von dieser Beispielabfrage werden alle Blog-Entitäten mit Wörtern abgeglichen, die mit „lou“ beginnen, gefolgt von „music“. +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -393,20 +399,6 @@ Kombinieren Sie Volltextoperatoren, um komplexere Filter zu erstellen. Mit einem Graph Node implementiert die [spezifikationsbasierte](https://spec.graphql.org/October2021/#sec-Validation) Validierung der empfangenen GraphQL-Abfragen mit [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), die auf der [graphql-js-Referenzimplementierung](https://github.com/graphql/graphql-js/tree/main/src/validation) basiert. Abfragen, die eine Validierungsregel nicht erfüllen, werden mit einem Standardfehler angezeigt - besuchen Sie die [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation), um mehr zu erfahren. -## Schema - -Das Schema Ihrer Datenquellen, d. h. die Entitätstypen, Werte und Beziehungen, die zur Abfrage zur Verfügung stehen, werden über die [GraphQL Interface Definition Language (IDL)] (https://facebook.github.io/graphql/draft/#sec-Type-System) definiert. - -GraphQL-Schemata definieren im Allgemeinen Wurzeltypen für „Abfragen“, „Abonnements“ und „Mutationen“. The Graph unterstützt nur `Abfragen`. Der Root-Typ „Abfrage“ für Ihren Subgraph wird automatisch aus dem GraphQL-Schema generiert, das in Ihrem [Subgraph-Manifest] enthalten ist (/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Hinweis: Unsere API stellt keine Mutationen zur Verfügung, da von den Entwicklern erwartet wird, dass sie aus ihren Anwendungen heraus Transaktionen direkt gegen die zugrunde liegende Blockchain durchführen. - -### Entitäten - -Alle GraphQL-Typen mit `@entity`-Direktiven in Ihrem Schema werden als Entitäten behandelt und müssen ein `ID`-Feld haben. - -> **Hinweis:** Derzeit müssen alle Typen in Ihrem Schema eine `@entity`-Direktive haben. In Zukunft werden wir Typen ohne `@entity`-Direktive als Wertobjekte behandeln, aber dies wird noch nicht unterstützt. - ### Subgraph-Metadaten Alle Subgraphen haben ein automatisch generiertes `_Meta_`-Objekt, das Zugriff auf die Metadaten des Subgraphen bietet. Dieses kann wie folgt abgefragt werden: From 21fa997f5da161f3324ea63498aae166f3344527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:41 -0400 Subject: [PATCH 0255/1709] New translations graphql-api.mdx (Italian) --- .../it/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/it/subgraphs/querying/graphql-api.mdx b/website/src/pages/it/subgraphs/querying/graphql-api.mdx index 6449bb254449..e4ddad384d6d 100644 --- a/website/src/pages/it/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/it/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: API GraphQL --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entità + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Esempi +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Ordinamento -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Esempio di ordinamento di entità annidate +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Eseguire query di primi 10 token: @@ -101,9 +115,9 @@ Eseguire query di primi 10 token: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Esempio di filtraggio dell'intervallo +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Esempio di filtraggio dei blocchi +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Esempio di filtraggio di entità annidate +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ Questo può essere utile se si vuole recuperare solo le entità il cui livello d } ``` -#### Operatori logici +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Tutti i filtri @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Query Time-travel +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Esempio +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Esempio - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Query di ricerca fulltext +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Operatori di ricerca fulltext: +Full-text search operators: -| Simbolo | Operatore | Descrizione | -| --- | --- | --- | -| `&` | `And` | Per combinare più termini di ricerca in un filtro per le entità che includono tutti i termini forniti | -| | | `Or` | Le query con più termini di ricerca separati dall'operatore Or restituiranno tutte le entità con una corrispondenza tra i termini forniti | -| `<->` | `Follow by` | Specifica la distanza tra due parole. | -| `:*` | `Prefix` | Utilizzare il termine di ricerca del prefisso per trovare le parole il cui prefisso corrisponde (sono richiesti 2 caratteri.) | +| Simbolo | Operatore | Descrizione | | +| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Per combinare più termini di ricerca in un filtro per le entità che includono tutti i termini forniti | | +| | | `Or` | Le query con più termini di ricerca separati dall'operatore Or restituiranno tutte le entità con una corrispondenza tra i termini forniti | +| `<->` | `Follow by` | Specifica la distanza tra due parole. | | +| `:*` | `Prefix` | Utilizzare il termine di ricerca del prefisso per trovare le parole il cui prefisso corrisponde (sono richiesti 2 caratteri.) | | -#### Esempi +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combinare gli operatori fulltext per creare filtri più complessi. Con un operatore di ricerca pretext combinato con un follow by questa query di esempio corrisponderà a tutte le entità del blog con parole che iniziano con "lou" seguite da "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combinare gli operatori fulltext per creare filtri più complessi. Con un operat Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entità - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Metadati del Subgraph All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From f6e48124e1d6b8cebf040c60fef8de24e3991db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:42 -0400 Subject: [PATCH 0256/1709] New translations graphql-api.mdx (Japanese) --- .../ja/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx index c1700fb5e9da..19581d236459 100644 --- a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### エンティティ + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### スキーマ + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### 例 +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### 並べ替え -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### ネストされたエンティティの並べ替えの例 +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` 最初の 10 個のトークンを照会します。 @@ -101,9 +115,9 @@ When querying a collection, it's best to: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### 範囲フィルタリングの例 +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### ブロックフィルタリングの例 +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### ネストされたエンティティ フィルタリングの例 +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ Filtering on the basis of nested entities is possible in the fields with the `_` } ``` -#### 論理演算子 +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### すべてのフィルター @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### タイムトラベル クエリ +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### 例 +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### 例 - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### 全文検索クエリ +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -全文検索演算子: +Full-text search operators: -| シンボル | オペレーター | 説明書き | -| --- | --- | --- | -| `&` | `And` | 複数の検索語を組み合わせて、指定したすべての検索語を含むエンティティをフィルタリングします。 | -| | | `Or` | 複数の検索語をオペレーターで区切って検索すると、指定した語のいずれかにマッチするすべてのエンティティが返されます。 | -| `<->` | `Follow by` | 2 つの単語の間の距離を指定します。 | -| `:*` | `Prefix` | プレフィックス検索語を使って、プレフィックスが一致する単語を検索します(2 文字必要) | +| シンボル | オペレーター | 説明書き | | +| ----- | ----------- | ---------------------------------------------- | --------------------------------------------------------- | +| `&` | `And` | 複数の検索語を組み合わせて、指定したすべての検索語を含むエンティティをフィルタリングします。 | | +| | | `Or` | 複数の検索語をオペレーターで区切って検索すると、指定した語のいずれかにマッチするすべてのエンティティが返されます。 | +| `<->` | `Follow by` | 2 つの単語の間の距離を指定します。 | | +| `:*` | `Prefix` | プレフィックス検索語を使って、プレフィックスが一致する単語を検索します(2 文字必要) | | -#### 例 +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -全文演算子を組み合わせて、より複雑なフィルターを作成します。口実検索演算子を follow by このサンプル クエリと組み合わせて使用​​すると、"lou" で始まり、その後に "music" が続く単語を持つすべてのブログ エンティティが一致します。 +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ The `follow by` operator specifies a words a specific distance apart in the full Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## スキーマ - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### エンティティ - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### サブグラフ メタデータ All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 65f96ad27f7b9c869173521cc8bf9e135b5ec0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:43 -0400 Subject: [PATCH 0257/1709] New translations graphql-api.mdx (Korean) --- .../ko/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx index e10201771989..6ff6a8777ce9 100644 --- a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | Description | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | Description | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 6bcfae3e8e0c40c82d890320e76d7ac6b5070b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:44 -0400 Subject: [PATCH 0258/1709] New translations graphql-api.mdx (Dutch) --- .../nl/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx index e10201771989..6ff6a8777ce9 100644 --- a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | Description | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | Description | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 783463c771fe036c9a87cd1177fea926b7a6d6dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:46 -0400 Subject: [PATCH 0259/1709] New translations graphql-api.mdx (Polish) --- .../pl/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx index e10201771989..6ff6a8777ce9 100644 --- a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | Description | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | Description | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 399e07a413eeff305f6dff8f90ab37ecf1441295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:47 -0400 Subject: [PATCH 0260/1709] New translations graphql-api.mdx (Portuguese) --- .../pt/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx index 81070e023b76..1432f41e790d 100644 --- a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: API GraphQL --- -Aprenda sobre a API de Queries da GraphQL, usada no The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## O Que é a GraphQL? A [GraphQL](https://graphql.org/learn/) é uma linguagem de queries para APIs e um sistema de tempo de execução (runtime) para executar esses queries, com os seus dados já existentes. O The Graph usa a GraphQL para fazer queries em subgraphs. -Para entender melhor o papel maior da GraphQL, veja [como programar](/subgraphs/developing/introduction/) e [criar um subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entidades + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries com a GraphQL -No seu schema de subgraph, você definirá tipos chamados `Entities` ("Entidades"). Para cada tipo `Entity`, campos `entity` e `entities` serão gerados no tipo de nível superior `Query`. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Observação: `query` não precisa ser incluído no topo do query `graphql` enquanto usar o The Graph. +### Example Queries -### Exemplos +> Observação: `query` não precisa ser incluído no topo do query `graphql` enquanto usar o The Graph. Query para uma entidade `Token` definida no seu schema: @@ -44,7 +58,7 @@ Faça um query de todas as entidades `Token`: ### Organização -Quando fizer um query de uma coleção, você poderá: +When querying a collection, you can: - Use o parâmetro `orderBy` para organizar os resultados por atributos específicos. - Use `orderDirection` para especificar a direção da organização; `asc` para ordem crescente ou `desc` para decrescente. @@ -60,7 +74,7 @@ Quando fizer um query de uma coleção, você poderá: } ``` -#### Exemplo para organização de entidade aninhada +#### Example for Nested Entity Sorting Com o lançamento da versão [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) do Graph Node, as entidades podem ser organizadas com base nas entidades aninhadas. @@ -88,7 +102,7 @@ Quando fizer um query de uma coleção, recomendamos: - Usar o parâmetro `skip` para pular entidades e paginar. Por exemplo: `first:100` mostra as primeiras 100 entidades e `first:100, skip:100` mostra as próximas 100. - Evitar usar valores `skip` em queries, já que o desempenho destes normalmente não é bom. Para resgatar um grande volume de itens, recomendamos paginar entidades com base num atributo, conforme demonstrado no exemplo acima. -#### Exemplo com `first` +#### Example Using `first` Consulte os 10 primeiros tokens: @@ -101,9 +115,9 @@ Consulte os 10 primeiros tokens: } ``` -Para fazer queries sobre grupos de entidades no meio de uma coleção, o parâmetro `skip` pode ser usado em conjunto com o parâmetro `first` para pular um número especificado de entidades, a começar no início da coleção. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Exemplo com `first` e `skip` +#### Example Using `first` and `skip` Faça query de 10 entidades Token, deslocadas por 10 posições do começo da coleção: @@ -116,7 +130,7 @@ Faça query de 10 entidades Token, deslocadas por 10 posições do começo da co } ``` -#### Exemplo com `first` e `id_ge` +#### Example Using `first` and `id_ge` Se um cliente precisar retirar um grande volume de entidades, é muito mais eficiente basear queries num atributo e filtrar pelo mesmo. Por exemplo, um cliente retiraria um número grande de tokens com este query: @@ -136,9 +150,9 @@ Na primeira vez, ele enviaria o query com `lastID = ""`, e nas solicitações se - O parâmetro `where` pode ser usado nos seus queries para filtrar propriedades diferentes. - Vários valores podem ser filtrados dentro do parâmetro `where`. -#### Exemplo com `where` +#### Using `where` Filtering -Faça um query sobre desafios com o resultado `failed` (falha): +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Faça um query sobre desafios com o resultado `failed` (falha): É possível usar sufixos como `_gt`, ou `_lte`, para comparar valores: -#### Exemplo para filtragem de alcance +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ Faça um query sobre desafios com o resultado `failed` (falha): } ``` -#### Exemplo para filtragem de blocos +#### Block Filtering Também dá para filtrar entidades atualizadas dentro de, ou depois de, um bloco específico com `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ Isto pode servir caso o seu plano seja retirar apenas entidades que mudaram, por } ``` -#### Exemplo para filtragem de entidade ninhada +#### Nested Entity Filtering É possível usar filtros com base em entidades aninhadas nos campos com o sufixo `_`. @@ -200,11 +214,11 @@ Isto é bom caso mire retirar apenas entidades cujas entidades de nível-filho c } ``` -#### Operadores lógicos +### Logical Operators Com o lançamento da versão [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) do Graph Node, é possível agrupar vários parâmetros no mesmo argumento `where`, com os operadores `and` ou `or`, para filtrar resultados com base em mais de um critério. -##### Operador `AND` +#### Using `and` Operator O exemplo a seguir filtra por desafios com o `outcome` ("resultado") `succeeded` ("sucesso"), e `number` ("número") maior que ou igual a `100`. @@ -234,7 +248,7 @@ O exemplo a seguir filtra por desafios com o `outcome` ("resultado") `succeeded` > } > ``` -##### Operador `OR` +#### Using `or` Operator O exemplo a seguir filtra desafios com o `outcome` `succeeded`, e o `number` maior que ou igual a `100`. @@ -250,7 +264,7 @@ O exemplo a seguir filtra desafios com o `outcome` `succeeded`, e o `number` mai } ``` -> **Observação**: Ao construir queries, é importante considerar o impacto do desempenho do operador `or`. O `or` pode ser útil para ampliar os resultados da busca, mas também pode ter custos significativos. Um dos maiores problemas com o `or` é que pode desacelerar os queries. Isto é porque o `or` exige que o banco de dados escaneie através de vários índices, o que pode demorar muito. Para evitar estes problemas, recomendamos que os programadores usem operadores `and` em vez de `or` sempre que possível. Isto retorna filtragens mais precisas, e pode levar a queries mais rápidos e confiáveis. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Todos os Filtros @@ -287,7 +301,7 @@ Além disto, os seguintes filtros globais estão disponíveis como parte do argu _change_block(number_gte: Int) ``` -### Consultas de viagem no tempo +### Time-travel Queries É possível solicitar o estado das suas entidades não só para o bloco mais recente, que é o padrão, mas também para um bloco arbitrário no passado. O bloco em que acontece um query pode ser especificado pelo seu número, ou pelo seu hash, ao incluir um argumento `block` nos campos de nível superior de query. @@ -295,7 +309,7 @@ O resultado de um query assim não mudará com o tempo; por exemplo, queries num > Observação: a implementação atual ainda está sujeita a certas limitações que podem violar estas garantias. A implementação nem sempre percebe que um hash de bloco não está na chain principal, ou que um query por hash de bloco retorna um bloco que não pode ser considerado final, mas que pode ser influenciado por uma reorganização de bloco executada concorrente com a solicitação. Elas não afetam os resultados de queries por hash de bloco quando o bloco é final e tem sua presença conhecida na chain principal. [Este inquérito](https://github.com/graphprotocol/graph-node/issues/1405) explica estas limitações em detalhes. -#### Exemplo +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ O resultado de um query assim não mudará com o tempo; por exemplo, queries num Este query retornará entidades `Challenge` e as suas entidades `Application` associadas, já que existiram diretamente após processar o bloco de número 8.000.000. -#### Exemplo - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ Este query retornará entidades `Challenge` e as suas entidades `Application` as Este query retornará entidades `Challenge` e as suas entidades `Application` associadas, já que existiram diretamente após processar o bloco com o hash indicado. -### Consultas de Busca Fulltext +### Full-text Search Queries -Campos de busca em full-text fornecem uma API de busca de texto expressiva, que pode ser adicionada e personalizada ao schema do subgraph. Para adicionar buscas em full-text ao seu subgraph, veja [Como Definir Campos de Busca em Full-Text](/developing/creating-a-subgraph/#defining-fulltext-search-fields). +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Buscas em full-text têm um campo obrigatório, `text`, para ofertar termos de busca. Vários operadores especiais de full-text estão disponíveis para uso neste campo de busca `text`. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Operadores de busca fulltext: +Full-text search operators: -| Símbolo | Operador | Descrição | -| --- | --- | --- | -| `&` | `And` | Para combinar múltiplos termos de busca num filtro para entidades que incluem todos os termos fornecidos | -| | | `Or` | Consultas com vários termos de busca separados pelo operador or retornarão todas as entidades com uma correspondência de qualquer termo providenciado | -| `<->` | `Follow by` | Especifica a distância entre duas palavras. | -| `:*` | `Prefix` | Use o prefixo para encontrar palavras que correspondem a tal prefixo (2 caracteres necessários.) | +| Símbolo | Operador | Descrição | | +| ------- | ----------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Para combinar múltiplos termos de busca num filtro para entidades que incluem todos os termos fornecidos | | +| | | `Or` | Consultas com vários termos de busca separados pelo operador or retornarão todas as entidades com uma correspondência de qualquer termo providenciado | +| `<->` | `Follow by` | Especifica a distância entre duas palavras. | | +| `:*` | `Prefix` | Use o prefixo para encontrar palavras que correspondem a tal prefixo (2 caracteres necessários.) | | -#### Exemplos +#### Full-text Query Examples -Com o operador `or`, esta consulta filtrará para entidades de blog com variações de "anarchism" ou "crumpet" nos seus campos fulltext. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Com o operador `or`, esta consulta filtrará para entidades de blog com variaç } ``` -O operador `follow by` especifica palavras separadas por uma distância específica nos documentos fulltext. A query a seguir retornará todos os blogs com variações de "decentralize" ("descentralizar") seguido por "philosophy" ("filosofia") +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ O operador `follow by` especifica palavras separadas por uma distância específ } ``` -Combine operadores de fulltext para fazer filtros mais complexos. Com um operador de busca pretext combinado com um 'follow by', este exemplo de consulta corresponderá todas as entidades de blog com palavras que começam com "lou" seguido de "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine operadores de fulltext para fazer filtros mais complexos. Com um operado O Graph Node implementa validações [baseadas em especificação](https://spec.graphql.org/October2021/#sec-Validation) dos queries da GraphQL que recebe, através do [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules) — que tem base na [referência de implementação graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries que não aderem a uma regra de validação fazem isso com um erro comum — para saber mais, visite as [especificações da GraphQL](https://spec.graphql.org/October2021/#sec-Validation). -## Schema - -O schema dos seus dataSources — por exemplo, os tipos de entidade, valores, e conexões que podem ser solicitados num query — é definido através da [Linguagem de Definição de Interface da GraphQL (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -Os schemas GraphQL geralmente definem tipos de origem para `queries` (solicitações), `subscriptions` (inscrições) e `mutations` (mutações). O The Graph só apoia `queries`. A origem `Query` para o seu subgraph é gerada automaticamente a partir do schema GraphQL incluído no [manifest do seu subgraph](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Nota: A nossa API não expõe mutações, porque esperamos que os programadores emitam transações diretamente dos seus aplicativos perante a blockchain subjacente. - -### Entidades - -Todos os tipos GraphQL com diretivos `@entity` no seu schema serão tratados como entidades, e devem ter um campo `ID`. - -> **Observação:** Atualmente, todos os tipos no seu schema devem ter um diretivo `@entity`. No futuro, trataremos tipos sem um diretivo `@entity` como objetos de valor, mas ainda não há apoio a isto. - ### Metadados de Subgraph Todos os subgraphs devem ter um objeto `_Meta_` gerado automaticamente, que permite acesso aos metadados do subgraph. Isto pode ser solicitado num query como o query mostrado a seguir: From d3c3178f3b824280d70f11ea3322b0d79e4812df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:48 -0400 Subject: [PATCH 0261/1709] New translations graphql-api.mdx (Russian) --- .../ru/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx index 899c3e3caa7e..e9880cd1b395 100644 --- a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: API GraphQL --- -Узнайте о GraphQL API запросах, используемых в The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## Что такое GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Объекты + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Схема + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Запросы с GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Примечание: `query` не нужно указывать в начале `graphql` запроса при использовании The Graph. +### Example Queries -### Примеры +> Примечание: `query` не нужно указывать в начале `graphql` запроса при использовании The Graph. Запрос для одного объекта `Token`, определенного в Вашей схеме: @@ -44,7 +58,7 @@ In your Subgraph schema you define types called `Entities`. For each `Entity` ty ### Сортировка -При запросе коллекции Вы можете: +When querying a collection, you can: - Использовать параметр `orderBy` для сортировки по определенному атрибуту. - Использовать параметр `orderDirection`, чтобы указать направление сортировки `asc` для возрастания или `desc` для убывания. @@ -60,7 +74,7 @@ In your Subgraph schema you define types called `Entities`. For each `Entity` ty } ``` -#### Пример сортировки вложенных объектов +#### Example for Nested Entity Sorting Начиная с Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), объекты можно сортировать на основе вложенных объектов. @@ -88,7 +102,7 @@ In your Subgraph schema you define types called `Entities`. For each `Entity` ty - Использовать параметр `skip`, чтобы пропускать объекты и осуществлять пагинацию. Например, `first:100` покажет первые 100 объектов, а `first:100, skip:100` покажет следующие 100 объектов. - Избегайте использования `skip` в запросах, так как это обычно приводит к низкой производительности. Для получения большого количества элементов лучше выполнять постраничную загрузку объектов на основе атрибута, как показано в предыдущем примере. -#### Пример использования `first` +#### Example Using `first` Запрос первых 10 токенов: @@ -101,9 +115,9 @@ In your Subgraph schema you define types called `Entities`. For each `Entity` ty } ``` -Чтобы запросить группы объектов в середине коллекции, параметр `skip` можно использовать в сочетании с параметром `first`, чтобы пропустить указанное количество объектов, начиная с начала коллекции. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Пример использования `first` и `skip` +#### Example Using `first` and `skip` Запрос 10 объектов `Token`, смещенных на 10 позиций от начала коллекции: @@ -116,7 +130,7 @@ In your Subgraph schema you define types called `Entities`. For each `Entity` ty } ``` -#### Пример использования `first` и `id_ge` +#### Example Using `first` and `id_ge` Если клиенту нужно получить большое количество объектов, эффективнее выполнять запросы на основе атрибута и фильтровать по этому атрибуту. Например, клиент может получить большое количество токенов с помощью следующего запроса: @@ -136,9 +150,9 @@ query manyTokens($lastID: String) { - Вы можете использовать параметр `where` в запросах для фильтрации по различным свойствам. - Вы можете фильтровать по нескольким значениям внутри параметра `where`. -#### Пример использования `where` +#### Using `where` Filtering -Запрос задач с результатом `failed`: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ query manyTokens($lastID: String) { Вы можете использовать такие суффиксы, как `_gt`, `_lte` для сравнения значений: -#### Пример фильтрации диапазона +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ query manyTokens($lastID: String) { } ``` -#### Пример фильтрации блока +#### Block Filtering Вы также можете фильтровать объекты, которые были обновлены на указанном блоке или позже, с помощью `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Пример фильтрации вложенных объектов +#### Nested Entity Filtering Фильтрация на основе вложенных объектов возможна в полях с суффиксом `_`. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Логические операторы +### Logical Operators Начиная с Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), Вы можете группировать несколько параметров в одном аргументе `where`, используя операторы `and` или `or` для фильтрации результатов по нескольким критериям. -##### Оператор `AND` +#### Using `and` Operator Следующий пример фильтрует задачи с `outcome` `succeeded` и `number` больше или равно `100`. @@ -234,7 +248,7 @@ This can be useful if you are looking to fetch only entities which have changed, > } > ``` -##### Оператор `OR` +#### Using `or` Operator Следующий пример фильтрует задачи с `outcome` `succeeded` или `number` больше или равно `100`. @@ -250,7 +264,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -> **Примечание**: При составлении запросов важно учитывать влияние оператора `or` на производительность. Хотя `or` может быть полезным инструментом для расширения результатов поиска, он также может значительно замедлить запросы. Основная проблема в том, что `or` заставляет базу данных сканировать несколько индексов, что может быть ресурсоемким процессом. Чтобы избежать этих проблем, рекомендуется по возможности использовать оператор `and` вместо `or`. Это позволяет выполнять более точную фильтрацию и делает запросы быстрее и эффективнее. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Все фильтры @@ -287,7 +301,7 @@ _not_ends_with_nocase _change_block(number_gte: Int) ``` -### Запросы на Time-travel +### Time-travel Queries Вы можете запрашивать состояние своих объектов не только для последнего блока, который используется по умолчанию, но и для произвольного блока в прошлом. Блок, в котором должен выполняться запрос, можно указать либо по номеру блока, либо по его хэшу, включив аргумент `block` в поля верхнего уровня запросов. @@ -295,7 +309,7 @@ _change_block(number_gte: Int) > Примечание: Текущая реализация все еще подвержена определенным ограничениям, которые могут нарушить эти гарантии. Реализация не всегда может точно определить, что данный хэш блока вообще не находится на основном чейне, или что результат запроса по хэшу блока для блока, который еще не считается окончательным, может быть изменен из-за реорганизации блоков, происходящей одновременно с запросом. Эти ограничения не влияют на результаты запросов по хэшу блока, если блок окончателен и подтвержден на основном чейне. [Этот вопрос](https://github.com/graphprotocol/graph-node/issues/1405) подробно объясняет, в чем состоят эти ограничения. -#### Пример +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ _change_block(number_gte: Int) Этот запрос вернет объекты `Challenge` и связанные с ними объекты `Application` в том виде, в каком они существовали сразу после обработки блока номер 8,000,000. -#### Пример - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ _change_block(number_gte: Int) Этот запрос вернет объекты `Challenge` и связанные с ними объекты `Application` в том виде, в каком они существовали сразу после обработки блока с заданным хешем. -### Полнотекстовые поисковые запросы +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Запросы полнотекстового поиска имеют одно обязательное поле, `text`, для предоставления поисковых запросов. В этом поле поиска `text` можно использовать несколько специальных операторов полнотекстового поиска. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Полнотекстовые поисковые операторы: +Full-text search operators: -| Символ | Оператор | Описание | -| --- | --- | --- | -| `&` | `And` | Для объединения нескольких условий поиска в фильтр для объектов, которые включают все указанные условия | -| | | `Or` | Запросы с несколькими условиями поиска, разделенные оператором or, вернут все объекты, которые соответствуют любому из предоставленных условий | -| `<->` | `Follow by` | Укажите расстояние между двумя словами. | -| `:*` | `Prefix` | Используйте поисковый запрос по префиксу, чтобы найти слова с соответствующим префиксом (необходимо 2 символа) | +| Символ | Оператор | Описание | | +| ------ | ----------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Для объединения нескольких условий поиска в фильтр для объектов, которые включают все указанные условия | | +| | | `Or` | Запросы с несколькими условиями поиска, разделенные оператором or, вернут все объекты, которые соответствуют любому из предоставленных условий | +| `<->` | `Follow by` | Укажите расстояние между двумя словами. | | +| `:*` | `Prefix` | Используйте поисковый запрос по префиксу, чтобы найти слова с соответствующим префиксом (необходимо 2 символа) | | -#### Примеры +#### Full-text Query Examples -Используя оператор `or`, этот запрос отфильтрует объекты блога, содержащие варианты слов "anarchism" или "crumpet" в их полнотекстовых полях. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Fulltext search query fields provide an expressive text search API that can be a } ``` -Оператор `follow by` определяет слова, находящиеся на определённом расстоянии друг от друга в полнотекстовых документах. Следующий запрос вернёт все блоги, содержащие варианты слова "decentralize", за которым следует "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ Fulltext search query fields provide an expressive text search API that can be a } ``` -Комбинируйте полнотекстовые операторы, чтобы создавать более сложные фильтры. С оператором поиска по префиксу в сочетании с запросом «follow by» будут найдены все объекты блога со словами, начинающимися с «lou», за которыми следует «music». +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Fulltext search query fields provide an expressive text search API that can be a Graph Node реализует валидацию [на основе спецификации](https://spec.graphql.org/October2021/#sec-Validation) для получаемых GraphQL-запросов с использованием [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), которая основана на [референсной реализации graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Запросы, не прошедшие проверку валидации, завершаются стандартной ошибкой. Ознакомьтесь со [спецификацией GraphQL](https://spec.graphql.org/October2021/#sec-Validation), чтобы узнать больше. -## Схема - -Схема Ваших источников данных, то есть типы объектов, значения и связи, доступные для запросов, определяется с помощью [Языка определения интерфейсов GraphQL (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Примечание: Наш API не подвергается мутациям, поскольку ожидается, что разработчики будут отправлять транзакции напрямую на базовый блокчейн из своих приложений. - -### Объекты - -Все типы GraphQL с директивами `@entity` в Вашей схеме будут рассматриваться как объекты и должны содержать поле `ID`. - -> **Примечание:** В настоящее время все типы в Вашей схеме должны иметь директиву `@entity`. В будущем мы будем рассматривать типы без директивы `@entity` как объекты значений, но на данный момент это не поддерживается. - ### Метаданные субграфа All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 55f00c4d191dbcc0707a19a2b8d1f2e7c05dab6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:49 -0400 Subject: [PATCH 0262/1709] New translations graphql-api.mdx (Swedish) --- .../sv/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx index 535f48fc7790..72d0f0e3eb59 100644 --- a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entiteter + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Exempel +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sortering -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Exempel på sortering av nästlade entiteter +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Fråga efter de första 10 tokens: @@ -101,9 +115,9 @@ Fråga efter de första 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Exempel på filtrering av intervall +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Exempel på blockfiltrering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Exempel på filtrering av inbäddade entiteter +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ Detta kan vara användbart om du vill hämta endast entiteter vars entiteter på } ``` -#### Logiska operatorer +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Alla filter @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Tidsreseförfrågningar +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Exempel +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Exempel - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltextsökförfrågningar +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltextsökoperatorer: +Full-text search operators: -| Symbol | Operatör | Beskrivning | -| --- | --- | --- | -| `&` | `And` | För att kombinera flera söktermer till ett filter för entiteter som inkluderar alla de angivna termerna | -| | | `Or` | Förfrågningar med flera söktermer separerade av ellipsen kommer att returnera alla entiteter med en matchning från någon av de angivna termerna | -| `<->` | `Follow by` | Ange avståndet mellan två ord. | -| `:*` | `Prefix` | Använd prefixsöktermen för att hitta ord vars prefix matchar (2 tecken krävs.) | +| Symbol | Operatör | Beskrivning | | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | För att kombinera flera söktermer till ett filter för entiteter som inkluderar alla de angivna termerna | | +| | | `Or` | Förfrågningar med flera söktermer separerade av ellipsen kommer att returnera alla entiteter med en matchning från någon av de angivna termerna | +| `<->` | `Follow by` | Ange avståndet mellan två ord. | | +| `:*` | `Prefix` | Använd prefixsöktermen för att hitta ord vars prefix matchar (2 tecken krävs.) | | -#### Exempel +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Kombinera fulltextoperatorer för att skapa mer komplexa filter. Med en pretext-sökoperatör kombinerad med en follow by kommer detta exempel att matcha alla bloggenheter med ord som börjar med "lou" följt av "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Kombinera fulltextoperatorer för att skapa mer komplexa filter. Med en pretext- Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entiteter - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Metadata för undergrafer All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 0e97935e1c0e4accd636f8f99cfa0528f14d5c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:51 -0400 Subject: [PATCH 0263/1709] New translations graphql-api.mdx (Turkish) --- .../tr/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx index f843969ea758..faafcbbe1af9 100644 --- a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API'ı --- -The Graph'te kullanılan GraphQL Sorgu API'ı hakkında bilgi edinin. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## GraphQL Nedir? [GraphQL] (https://graphql.org/learn/), API'lar için bir sorgu dili ve bu sorguları mevcut verileriniz üzerinde çalıştıran bir sorgu dilidir. The Graph, Subgraph'leri sorgulamak için GraphQL kullanır. -GraphQL’in daha kapsamlı rolünü anlamak için [geliştirme](/subgraphs/developing/introduction/) ve [bir Subgraph oluşturma](/developing/creating-a-subgraph/) bölümlerini inceleyin. +## Core Concepts + +### Varlıklar + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Şema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## GraphQL Sorguları -Subgraph şemanızda, `Entities` (Varlıklar) olarak adlandırılan türleri tanımlarsınız. Her bir `Entity` (Varlık) türü için, üst düzey `Query` türü üzerinde `entity` ve `entities` alanları otomatik olarak oluşturulur. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Not: The Graph'te, `graphql` sorgularının başına `query` (sorgu) ifadesinin eklenmesi gerekmez. +### Example Queries -### Örnekler +> Not: The Graph'te, `graphql` sorgularının başına `query` (sorgu) ifadesinin eklenmesi gerekmez. Şemanızda tanımlı tek bir `Token` varlığı için sorgu: @@ -44,7 +58,7 @@ Tüm `Token` varlıklarını sorgulama: ### Sıralama -Bir koleksiyon sorgularken şunları yapabilirsiniz: +When querying a collection, you can: - Belirli bir özniteliğe göre sıralama yapmak için `orderBy` parametresini kullanın. - Sıralama yönünü belirtmek için `orderDirection` kullanın; artan sıralama için `asc`, azalan sıralama için `desc`. @@ -60,7 +74,7 @@ Bir koleksiyon sorgularken şunları yapabilirsiniz: } ``` -#### İç içe varlık sıralaması için örnek +#### Example for Nested Entity Sorting Graph Düğümü [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) sürümünden itibaren, varlıklar iç içe ve varlıklara göre sıralanabilir. @@ -88,7 +102,7 @@ Bir koleksiyon sorgularken aşağıdakileri uygulamanız önerilir: - Varlıkları atlamak ve sayfalama yapmak için `skip` parametresini kullanın. Örneğin, `first:100` ilk 100 varlığı gösterir. `first:100, skip:100` ise sonraki 100 varlığı gösterir. - Sorgularda `skip` değerlerini kullanmaktan kaçının, çünkü genellikle düşük performans gösterirler. Çok sayıda ögeyi getirmek için, yukarıdaki örnekte gösterildiği gibi bir özniteliğe göre varlıklar arasında sayfalama yapmak en iyi yaklaşımdır. -#### `first` kullanımına örnek +#### Example Using `first` İlk 10 tokeni sorgulayın: @@ -101,9 +115,9 @@ Bir koleksiyon sorgularken aşağıdakileri uygulamanız önerilir: } ``` -Bir koleksiyonun ortasındaki varlık gruplarını sorgulamak için, `skip` parametresi `first` parametresiyle birlikte kullanılabilir. Bu, koleksiyonun başından itibaren belirli sayıda varlığı atlayarak sorgulama yapmanızı sağlar. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### `first` ve `skip` kullanımına örnek +#### Example Using `first` and `skip` Koleksiyonun başından itibaren 10 öge atlayarak 10 `Token` varlığı sorgulama: @@ -116,7 +130,7 @@ Koleksiyonun başından itibaren 10 öge atlayarak 10 `Token` varlığı sorgula } ``` -#### `first` ve `id_ge` kullanımına örnek +#### Example Using `first` and `id_ge` Bir istemcinin çok sayıda varlık alması gerektiğinde, sorguları bir öznitelik temelinde oluşturmak ve bu özniteliğe göre filtrelemek daha yüksek performans sağlar. Örneğin, bir istemci aşağıdaki sorguyu kullanarak çok sayıda token alabilir: @@ -136,9 +150,9 @@ query manyTokens($lastID: String) { - `where` parametresini sorgularınızda farklı özellikleri filtrelemek için kullanabilirsiniz. - Birden çok değeri `where` parametresi içinde filtreleyebilirsiniz. -#### `where` kullanımına örnek +#### Using `where` Filtering -`outcome` değeri `failed` olan challenge'ları sorgulama: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ query manyTokens($lastID: String) { `_gt`, `_lte` gibi son ekleri değer karşılaştırması için kullanabilirsiniz: -#### Aralık filtreleme için örnek +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ query manyTokens($lastID: String) { } ``` -#### Blok filtreleme için örnek +#### Block Filtering Belirtilen bir blokta veya sonrasında güncellenen varlıkları, `_change_block(number_gte: Int)` ile de filtreleyebilirsiniz. @@ -182,7 +196,7 @@ Bu, yalnızca değişen varlıkları getirmek istiyorsanız kullanışlı olabil } ``` -#### İç içe varlık filtreleme örneği +#### Nested Entity Filtering İç içe varlıklara göre filtreleme, `_` son ekine sahip alanlarda mümkündür. @@ -200,11 +214,11 @@ Bu, yalnızca alt düzey varlıkları sağlanan koşulları karşılayan varlık } ``` -#### Mantıksal operatörler +### Logical Operators Graph Düğümü [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) sürümünden itibaren, birden fazla kritere dayalı sonuçları filtrelemek için aynı `where` argümanı içinde birden çok parametreyi `and` veya `or` operatörleriyle gruplayabilirsiniz. -##### `AND` Operatörü +#### Using `and` Operator Aşağıdaki örnek, `outcome` değeri `succeeded` olan ve `number` alanı `100` veya daha büyük olan challenge'ları filtreler. @@ -234,7 +248,7 @@ Aşağıdaki örnek, `outcome` değeri `succeeded` olan ve `number` alanı `100` > } > ``` -##### `OR` Operatörü +#### Using `or` Operator Aşağıdaki örnek, `outcome` değeri `succeeded` olan veya `number` alanı `100` veya daha büyük olan challenge'ları filtreler. @@ -250,7 +264,7 @@ Aşağıdaki örnek, `outcome` değeri `succeeded` olan veya `number` alanı `10 } ``` -> **Not:** Sorguları oluştururken `or` operatörünün performans üzerindeki etkisini dikkate almak önemlidir. `or`, arama sonuçlarını genişletmek için faydalı bir araç olsa da, ciddi performans maliyetlerine yol açabilir. `or` operatörünün başlıca sorunlarından biri, sorguların yavaşlamasına neden olmasıdır. Bunun nedeni, `or` kullanıldığında veritabanının birden fazla endeksi taramak zorunda kalmasıdır; bu da zaman alıcı bir işlemdir. Bu tür sorunlardan kaçınmak için geliştiricilere mümkün olduğunca `or` yerine `and` operatörlerini kullanmaları önerilir. Bu sayede daha hassas filtreleme yapılabilir ve sorgular daha hızlı ve doğru şekilde çalışabilir. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### Tüm Filtreler @@ -287,7 +301,7 @@ Ayrıca, `where` argümanının bir parçası olarak aşağıdaki genel filtrele _change_block(number_gte: Int) ``` -### Zaman yolculuğu sorguları +### Time-travel Queries Varlıklarınızın durumunu en son blok için (varsayılan), ya da geçmişteki herhangi bir blok için sorgulayabilirsiniz. Sorgunun hangi blokta yapılacağını belirtmek için, üst seviye sorgu alanlarında `block` argümanı eklenerek ilgili blok numarası veya blok hash’i kullanılabilir. @@ -295,7 +309,7 @@ Böyle bir sorgunun sonucu zamanla değişmez; yani, geçmişteki belirli bir bl > **Not:** Mevcut uygulama, bu güvenceleri ihlal edebilecek bazı sınırlamalara hâlâ tabidir. Uygulama, verilen bir blok hash’inin ana zincirde yer almadığını her zaman tespit edemez veya henüz kesin (final) olarak kabul edilmeyen bir blok için yapılan bir blok hash sorgusunun, sorgu ile eşzamanlı olarak gerçekleşen bir zincir yeniden düzenlemesinden etkilenip etkilenmeyeceğini öngöremez. Ancak bu sınırlamalar, blok kesinleşmiş ve ana zincirde yer aldığı biliniyorsa, blok hash ile yapılan sorguların sonuçlarını etkilemez. Bu sınırlamalar hakkında ayrıntılı bilgi için [bu GitHub issue'su](https://github.com/graphprotocol/graph-node/issues/1405) incelenebilir. -#### Örnek +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ Böyle bir sorgunun sonucu zamanla değişmez; yani, geçmişteki belirli bir bl Bu sorgu, blok numarası 8.000.000 işlendiği andan hemen sonraki halleriyle `Challenge` varlıklarını ve bunlara bağlı `Application` varlıklarını döndürecektir. -#### Örnek - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ Bu sorgu, blok numarası 8.000.000 işlendiği andan hemen sonraki halleriyle `C Bu sorgu, verilen hash’e sahip blok işlendiği andan hemen sonraki halleriyle `Challenge` varlıklarını ve bunlara bağlı `Application` varlıklarını döndürecektir. -### Tam Metin Arama Sorguları +### Full-text Search Queries -Tam metin arama sorgu alanları, Subgraph şemasına eklenebilen ve özelleştirilebilen gelişmiş bir metin arama API’si sağlar. Subgraph'inize tam metin arama eklemek için [Tam Metin Arama Alanlarını Tanımlama](/developing/creating-a-subgraph/#defining-fulltext-search-fields) bölümüne bakın. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Tam metin arama sorgularında, arama terimlerinin girildiği zorunlu bir `text` alanı bulunur. Bu `text` arama alanında kullanılabilecek çeşitli özel tam metin operatörleri mevcuttur. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Tam metin arama operatörleri: +Full-text search operators: -| Sembol | Operatör | Tanım | -| --- | --- | --- | -| `&` | `And` | Sağlanan tüm arama terimlerini içeren varlıkları filtrelemek için birden fazla arama terimini birleştirir | -| | | `Or` | Or (veya) operatörüyle ayrılmış birden fazla arama terimi içeren sorgular, sağlanan terimlerden herhangi biriyle eşleşen tüm varlıkları döndürür | -| `<->` | `Follow by` | İki kelime arasındaki mesafeyi belirtmeyi sağlar. | -| `:*` | `Prefix` | Ön eki (Prefix'i) eşleşen kelimeleri bulmak için ön ek arama terimini kullanın (en az 2 karakter gereklidir). | +| Sembol | Operatör | Tanım | | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Sağlanan tüm arama terimlerini içeren varlıkları filtrelemek için birden fazla arama terimini birleştirir | | +| | | `Or` | Or (veya) operatörüyle ayrılmış birden fazla arama terimi içeren sorgular, sağlanan terimlerden herhangi biriyle eşleşen tüm varlıkları döndürür | +| `<->` | `Follow by` | İki kelime arasındaki mesafeyi belirtmeyi sağlar. | | +| `:*` | `Prefix` | Ön eki (Prefix'i) eşleşen kelimeleri bulmak için ön ek arama terimini kullanın (en az 2 karakter gereklidir). | | -#### Örnekler +#### Full-text Query Examples -`or` operatörü kullanılarak yapılan bu sorgu, tam metin alanlarında "anarchism" veya "crumpet" kelimelerinin varyasyonlarını içeren blog varlıklarını döndürecektir. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Tam metin arama operatörleri: } ``` -`follow by` operatörü, tam metin belgelerinde belirli bir mesafe ile birbirini izleyen kelimeleri belirtir. Aşağıdaki sorgu, "decentralize" kelimesinin varyasyonları ardından belirli bir mesafede "philosophy" kelimesini içeren tüm blogları döndürecektir. +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ Tam metin arama operatörleri: } ``` -Daha karmaşık filtreler oluşturmak için tam metin operatörlerini birleştirin. Bu örnek sorgu, bir pretext arama işleci ile bir follow by işlecini birleştirerek "lou" ile başlayan ve ardından "music" ile devam eden sözcükleri içeren tüm blog varlıklarıyla eşleşecektir. +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Daha karmaşık filtreler oluşturmak için tam metin operatörlerini birleştir Graph Düğümü, [graphql-js referans uygulamasını](https://github.com/graphql/graphql-js/tree/main/src/validation) temel alan [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)'yi kullanarak aldığı GraphQL sorgularının [spesifikasyon tabanlı](https://spec.graphql.org/October2021/#sec-Validation) doğrulamasını gerçekleştirir. Bir doğrulama kuralını geçemeyen sorgular standart bir hata ile sonuçlanır. Daha fazla bilgi için [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)'i ziyaret edin. -## Şema - -Veri kaynaklarınızın şeması, yani sorgulanabilir olan entity türleri, değerler ve ilişkiler, [GraphQL Arayüz Tanım Dili (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System) kullanılarak tanımlanır. - -GraphQL şemaları genellikle `queries`, `subscriptions` ve `mutations` için kök türleri tanımlar. The Graph yalnızca `queries` desteği sunar. Subgraph’iniz için kök `Query` türü, [Subgraph manifesto](/developing/creating-a-subgraph/#components-of-a-subgraph) dosyanıza dahil edilen GraphQL şemasından otomatik olarak oluşturulur. - -> Not: API'miz mutation (mutasyon) işlemlerini desteklemez, çünkü geliştiricilerin kendi uygulamaları üzerinden doğrudan temel blokzincirine işlem göndermeleri beklenir. - -### Varlıklar - -Şemanızda `@entity` yönergesiyle tanımlanan tüm GraphQL türleri varlık olarak kabul edilir ve bir `ID` alanına sahip olmaları gerekir. - -> **Not:** Şu anda, şemanızdaki tüm türlerin `@entity` yönergesine sahip olması gerekir. Gelecekte, `@entity` yönergesi olmayan türler değer nesnesi olarak değerlendirilecek, ancak bu henüz desteklenmemektedir. - ### Subgraph Üst Verisi Tüm Subgraph'lerde, Subgraph metadatasına erişim sağlayan otomatik olarak oluşturulmuş bir `_Meta_` nesnesi bulunur. Buna aşağıdaki şekilde sorgu yapabilirsiniz: From 08610750ca8d933bf77bb205ae6fa08eec970a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:52 -0400 Subject: [PATCH 0264/1709] New translations graphql-api.mdx (Ukrainian) --- .../uk/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx index e10201771989..6ff6a8777ce9 100644 --- a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Example - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | Description | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | Description | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 39a5025779d0c66d86629117c9b2856c944b31ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:56 -0400 Subject: [PATCH 0265/1709] New translations graphql-api.mdx (Chinese Simplified) --- .../zh/subgraphs/querying/graphql-api.mdx | 104 +++++++++--------- 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx index 0e408a66bc0d..caa006a14d9e 100644 --- a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -了解在The Graph中使用的 GraphQL 查询 API。 +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## 什么是GraphQL? [GraphQL](https://graphql.org/learn/)是API的查询语言,也是用您现有数据执行这些查询的运行时间。The Graph使用GraphQL查询子图。 -要理解GraphQL所起的更大作用,请查看 [developing](/subgraphs/developing/introduction/) 和 [创建一个子图](/developing/creating-a-subgraph/)。 +## Core Concepts + +### 实体 + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### 模式 + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## 用GraphQL查询 -在你的子图模式中,定义了叫做`Entities`的类型。对于每个`Entity`类型,`entity` 和 `entities`字段将生成在顶级`Query`类型上。 +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> 注意:在使用The Graph时,`query` 不需要包含在`graphql`查询的顶部。 +### Example Queries -### 例子 +> 注意:在使用The Graph时,`query` 不需要包含在`graphql`查询的顶部。 查询在您的模式中定义的单个`Token`实体: @@ -44,7 +58,7 @@ title: GraphQL API ### 排序 -查询集合时,您可以: +When querying a collection, you can: - 使用 `orderBy` 参数按特定属性排序。 - 使用 `orderDirection` 来指定排序方向, `asc` 用于升序或 `desc` 用于降序。 @@ -60,7 +74,7 @@ title: GraphQL API } ``` -#### 嵌套实体筛选示例 +#### Example for Nested Entity Sorting 从Graph节点[`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) 可以根据嵌套实体排序。 @@ -88,7 +102,7 @@ title: GraphQL API - 使用 `skip` 参数跳过实体和分页。例如,`first:100` 会显示前100个实体,`first:100, skip:100`会显示后100个实体。 - 避免在查询中使用 `skip` 值,因为它们通常表现很差。 要检索大量条目,最好是通过上面示例中显示的属性的实体进行查找。 -#### 使用 `first` 示例 +#### Example Using `first` 查询前10 个代币: @@ -101,9 +115,9 @@ title: GraphQL API } ``` -查询集合中间的实体群组, `skip`参数可以与 `first`参数一起使用,以跳过从集合开始的指定数量的实体。 +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### 使用 `first` 和 `skip` 的示例 +#### Example Using `first` and `skip` 查询 10 `Token` 实体,由集合开始时的10个地方抵消: @@ -116,7 +130,7 @@ title: GraphQL API } ``` -#### 使用 `first` 和 `id_ge` 的示例 +#### Example Using `first` and `id_ge` 如果客户端需要检索大量实体,则基于属性进行查询和过滤会明显提高性能。 例如,客户端可以使用以下查询检索大量代币: @@ -136,9 +150,9 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last - 您可以在查询中使用 `where` 参数来过滤不同的属性。 - 您可以在 `where` 参数中筛选多个值。 -#### 使用 `where` 的示例 +#### Using `where` Filtering -使用 '失败的' 结果查询挑战: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last 你可以使用后缀,例如`_gt`, `_lte`来进行值比较: -#### 范围过滤示例 +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last } ``` -#### 区块过滤示例 +#### Block Filtering 您也可以筛选在指定的区块中或之后更新的实体使用 `_change_block(number_gte: Int)`。 @@ -182,9 +196,9 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last } ``` -#### 嵌套实体筛选示例 +#### Nested Entity Filtering -在后缀是\`\_'的字段中可以根据嵌套的实体进行过滤。 +在后缀是\`_'的字段中可以根据嵌套的实体进行过滤。 如果您希望只获取其子级实体满足条件的实体,那么这可能很有用。 @@ -200,11 +214,11 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last } ``` -#### 逻辑运算符 +### Logical Operators 对于Graph节点[`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0),您可以在同一个`where`参数中使用`and`或`or`运算符,根据多个标准过滤结果。 -##### `AND`运算符 +#### Using `and` Operator 下面的示例对大于或等于`100`的`outcome`、`successed`和`number`的挑战进行过滤。 @@ -234,7 +248,7 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last > } > ``` -##### `OR`运算符 +#### Using `or` Operator 下面的示例对大于或等于`100`的`outcome`、`successed`和`number`的挑战进行过滤。 @@ -250,7 +264,7 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last } ``` -> **注意**:在构建查询时,重要的是要考虑使用`or`运算符的性能影响。 虽然`or`可以成为扩大搜索结果的一个有用工具,但它也可能有很高的费用。 `or`的主要问题之一是它可能导致查询减缓。 这是因为`or`需要数据库通过多个索引进行扫描,这可能是一个耗时的过程。 为了避免这些问题,建议开发人员使用和操作人员,而不是在任何可能的情况下使用。 这样可以进行更精确的过滤,可以更快、更准确的查询。 +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### 所有过滤器 @@ -287,7 +301,7 @@ _not_ends_with_nocase _change_block(number_gte: Int) ``` -### 跨时间查询 +### Time-travel Queries 您可以查询您的实体状态,不仅仅是为了最新的区块, 它是默认的,但也是过去的任意区块的。 可以在查询的顶级字段中包含一个 ' block' 参数来指定查询的要么用其区块编号或区块哈希。 @@ -295,7 +309,7 @@ _change_block(number_gte: Int) > 请注意,当前的实现仍然受到某些限制,这些限制可能会违反这些保证。该实现不能总是判断给定的区块哈希根本不在主链上,或者对于一个不能被认为是最终的区块,逐块哈希查询的结果可能会受到与查询同时运行的区块重组的影响。当区块是最终区块并且已知在主链上时,它们不会影响区块哈希查询的结果。[这个](https://github.com/graphprotocol/graph-node/issues/1405)问题详细解释了这些限制是什么。 -#### 示例 +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ _change_block(number_gte: Int) 此查询将返回 `Challenge` 实体及其关联的 `Application` 实体,因为它们在处理8,000,000个区块后就存在了。 -#### 示例 - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ _change_block(number_gte: Int) 此查询将返回 `Challenge` 实体及其关联的 `Application` 实体,因为它们在处理具有给定哈希值的区块后就存在了。 -### 全文搜索查询 +### Full-text Search Queries -全文搜索查询字段提供了一个表达性的文本搜索 API,可以添加到子图模式中并进行自定义。 请参阅[定义全文搜索字段](/developing/creating-a-subgraph/#defining-fulltext-search-fields)以将全文搜索添加到您的子图中。 +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -全文搜索查询有一个必填字段 `text`,用于提供搜索词。 在这个 `text` 搜索字段中可以使用几个特殊的全文运算符。 +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -全文搜索运算符: +Full-text search operators: -| 符号 | 运算符 | 描述 | -| ------ | ----------- | ---------------------------------------------------------------------- | -| `&` | `And` | 用于将多个搜索词组合到包含所有提供词条的实体的过滤器中 | -| | | `Or` | 由 or 运算符分隔的多个搜索词的查询,将返回与任何提供的词匹配的所有实体 | -| `<->` | `Follow by` | 指定两个单词之间的距离。 | -| `:*` | `Prefix` | 使用前缀搜索词查找前缀匹配的单词(需要 2 个字符) | +| 符号 | 运算符 | 描述 | | +| ----- | ----------- | --------------------------- | ------------------------------------- | +| `&` | `And` | 用于将多个搜索词组合到包含所有提供词条的实体的过滤器中 | | +| | | `Or` | 由 or 运算符分隔的多个搜索词的查询,将返回与任何提供的词匹配的所有实体 | +| `<->` | `Follow by` | 指定两个单词之间的距离。 | | +| `:*` | `Prefix` | 使用前缀搜索词查找前缀匹配的单词(需要 2 个字符) | | -#### 例子 +#### Full-text Query Examples -使用 `or` 运算符,这个查询将过滤到在其全文字段中具有"anarchism" or "crumpet"变化的博客实体。 +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ _change_block(number_gte: Int) } ``` -`follow by` 运算符指定全文文档中相隔特定距离的单词。 以下查询将返回所有“decentralize”后跟着“philosophy”变体的日志。 +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ _change_block(number_gte: Int) } ``` -可以将全文运算符进行组合来制作更复杂的过滤器。 在下面的查询示例中,使用前缀搜索运算符与其他运算符的结合,可以实现匹配所有以“lou”开头后,跟着“music”单词的日志实体。 +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ _change_block(number_gte: Int) Graph节点实现使用 [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)验证它收到的 GraphQL 查询的 [specification-based](https://spec.graphql.org/October2021/#sec-Validation) 验证基于 [graphql-js 参考实现](https://github.com/graphql/graphql-js/tree/main/src/validation)。 查询失败的验证规则有一个标准错误 - 请访问 [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)来了解更多信息。 -## 模式 - -您的数据源模式,例如可用于查询的实体类型、值和关系是通过 [GraphQL 接口定义语言(IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System)定义的。 - -GraphQL模式通常定义`查询`、`订阅`和`突变`的根类型。The Graph仅支持`查询`。子图的根`查询`类型是从[子图清单](/developing/creating-a-subgraph/#components-of-a-subgraph)中包含的GraphQL模式自动生成的。 - -> 注意:我们的 API 不提供对突变的支持,因为开发人员会从他们的应用程序中直接针对底层区块链发出交易。 - -### 实体 - -模式定义中所有带有 `@entity` 指示的 GraphQL 类型都将被视为实体,并且必须具有 `ID` 字段。 - -> **注意:** 目前,您的模式中的所有类型都必须有一个 `@entity` 指令。 今后,我们将把没有`@entity`指令的类型视为值对象,但这还不被支持。 - ### 子图元数据 所有子图都有一个自动生成的`_Meta_`对象,它提供对子图元数据的访问。可按如下方式查询: From 2b24952aff367796caa6d2ec3511f15e07d243ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:57 -0400 Subject: [PATCH 0266/1709] New translations graphql-api.mdx (Urdu (Pakistan)) --- .../ur/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx index 79ecfe95c599..9f9117c00b19 100644 --- a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### ہستیوں + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### سکیما + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### مثالیں +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### سورٹنگ -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### نیسٹڈ ہستی کی چھانٹی کی مثال +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` پہلے 10 ٹوکنز سے کیوری کریں: @@ -101,9 +115,9 @@ When querying a collection, it's best to: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### رینج فلٹرنگ کی مثال +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### بلاک فلٹرنگ کی مثال +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### نیسٹڈ ہستی فلٹرنگ کی مثال +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ Filtering on the basis of nested entities is possible in the fields with the `_` } ``` -#### منطقی آپریٹرز +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### تمام فلٹرز @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### ٹائم ٹریول کے کیوریز +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### مثال +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### مثال - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### فل ٹیکسٹ تلاش کے کیوریز +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -فل ٹیکسٹ سرچ آپریٹرز: +Full-text search operators: -| علامت | آپریٹر | تفصیل | -| --- | --- | --- | -| `&` | `And` | ایک سے زیادہ تلاش کی اصطلاحات کو ایک فلٹر میں یکجا کرنے کے لیے ان ہستیوں کے لیے جس میں فراہم کردہ تمام اصطلاحات شامل ہوں | -| | | `Or` | Or آپریٹر کے ذریعہ الگ کردہ متعدد تلاش کی اصطلاحات کے ساتھ کیوریز فراہم کردہ شرائط میں سے کسی سے بھی مماثلت کے ساتھ تمام ہستیوں کو واپس کریں گے | -| `<->` | `Follow by` | دو الفاظ کے درمیان فاصلہ بتائیں. | -| `:*` | `Prefix` | ایسے الفاظ تلاش کرنے کے لیے پریفکس ​​تلاش کی اصطلاح استعمال کریں جن کا سابقہ ​​مماثل ہو (۲ حروف درکار ہیں.) | +| علامت | آپریٹر | تفصیل | | +| ----- | ----------- | ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | ایک سے زیادہ تلاش کی اصطلاحات کو ایک فلٹر میں یکجا کرنے کے لیے ان ہستیوں کے لیے جس میں فراہم کردہ تمام اصطلاحات شامل ہوں | | +| | | `Or` | Or آپریٹر کے ذریعہ الگ کردہ متعدد تلاش کی اصطلاحات کے ساتھ کیوریز فراہم کردہ شرائط میں سے کسی سے بھی مماثلت کے ساتھ تمام ہستیوں کو واپس کریں گے | +| `<->` | `Follow by` | دو الفاظ کے درمیان فاصلہ بتائیں. | | +| `:*` | `Prefix` | ایسے الفاظ تلاش کرنے کے لیے پریفکس ​​تلاش کی اصطلاح استعمال کریں جن کا سابقہ ​​مماثل ہو (۲ حروف درکار ہیں.) | | -#### مثالیں +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -مزید پیچیدہ فلٹرز بنانے کے لیے فل ٹیکسٹ آپریٹرز کو یکجا کریں۔ ایک بہانہ سرچ آپریٹر کے ساتھ اس مثال کے کیوری کی پیروی کے ساتھ مل کر بلاگ کے تمام ہستیوں کو ایسے الفاظ سے مماثل کرے گا جو "lou" کے بعد "موسیقی" سے شروع ہوتے ہیں. +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ The `follow by` operator specifies a words a specific distance apart in the full Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## سکیما - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### ہستیوں - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### سب گراف میٹا ڈیٹا All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 7c0c93fbf4745bab7022c55f77a03b73311a827a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:58 -0400 Subject: [PATCH 0267/1709] New translations graphql-api.mdx (Vietnamese) --- .../vi/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx index 65547da41195..0b7fc21754b0 100644 --- a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Lược đồ + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Ví dụ +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### Ví dụ - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Biểu tượng | Toán tử | Miêu tả | -| --- | --- | --- | -| `&` | `And` | Để kết hợp nhiều cụm từ tìm kiếm thành một bộ lọc cho các thực thể bao gồm tất cả các cụm từ được cung cấp | -| | | `Or` | Các truy vấn có nhiều cụm từ tìm kiếm được phân tách bằng toán tử hoặc sẽ trả về tất cả các thực thể có kết quả khớp với bất kỳ cụm từ nào được cung cấp | -| `<->` | `Follow by` | Chỉ định khoảng cách giữa hai từ. | -| `:*` | `Prefix` | Sử dụng cụm từ tìm kiếm tiền tố để tìm các từ có tiền tố khớp với nhau (yêu cầu 2 ký tự.) | +| Biểu tượng | Toán tử | Miêu tả | | +| ---------- | ----------- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Để kết hợp nhiều cụm từ tìm kiếm thành một bộ lọc cho các thực thể bao gồm tất cả các cụm từ được cung cấp | | +| | | `Or` | Các truy vấn có nhiều cụm từ tìm kiếm được phân tách bằng toán tử hoặc sẽ trả về tất cả các thực thể có kết quả khớp với bất kỳ cụm từ nào được cung cấp | +| `<->` | `Follow by` | Chỉ định khoảng cách giữa hai từ. | | +| `:*` | `Prefix` | Sử dụng cụm từ tìm kiếm tiền tố để tìm các từ có tiền tố khớp với nhau (yêu cầu 2 ký tự.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Lược đồ - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From ee2aac253dc887b61824736ea117bb15a16eacdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:33:59 -0400 Subject: [PATCH 0268/1709] New translations graphql-api.mdx (Marathi) --- .../mr/subgraphs/querying/graphql-api.mdx | 102 +++++++++--------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx index 049248616399..fb8c43d4fc0c 100644 --- a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: GraphQL API --- -Learn about the GraphQL Query API used in The Graph. +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## What is GraphQL? [GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. -To understand the larger role that GraphQL plays, review [developing](/subgraphs/developing/introduction/) and [creating a Subgraph](/developing/creating-a-subgraph/). +## Core Concepts + +### Entities + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### Schema + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## Queries with GraphQL -In your Subgraph schema you define types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Example Queries -### Examples +> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. Query for a single `Token` entity defined in your schema: @@ -44,7 +58,7 @@ Query all `Token` entities: ### Sorting -When querying a collection, you may: +When querying a collection, you can: - Use the `orderBy` parameter to sort by a specific attribute. - Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. @@ -60,7 +74,7 @@ When querying a collection, you may: } ``` -#### Example for nested entity sorting +#### Example for Nested Entity Sorting As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. @@ -88,7 +102,7 @@ When querying a collection, it's best to: - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example using `first` +#### Example Using `first` Query the first 10 tokens: @@ -101,9 +115,9 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter may be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### Example using `first` and `skip` +#### Example Using `first` and `skip` Query 10 `Token` entities, offset by 10 places from the beginning of the collection: @@ -116,7 +130,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example using `first` and `id_ge` +#### Example Using `first` and `id_ge` If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: @@ -136,9 +150,9 @@ The first time, it would send the query with `lastID = ""`, and for subsequent r - You can use the `where` parameter in your queries to filter for different properties. - You can filter on multiple values within the `where` parameter. -#### Example using `where` +#### Using `where` Filtering -Query challenges with `failed` outcome: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -154,7 +168,7 @@ Query challenges with `failed` outcome: You can use suffixes like `_gt`, `_lte` for value comparison: -#### Example for range filtering +#### Range Filtering ```graphql { @@ -166,7 +180,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Example for block filtering +#### Block Filtering You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. @@ -182,7 +196,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Example for nested entity filtering +#### Nested Entity Filtering Filtering on the basis of nested entities is possible in the fields with the `_` suffix. @@ -200,11 +214,11 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -#### Logical operators +### Logical Operators As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. -##### `AND` Operator +#### Using `and` Operator The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,7 +248,7 @@ The following example filters for challenges with `outcome` `succeeded` and `num > } > ``` -##### `OR` Operator +#### Using `or` Operator The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. @@ -250,7 +264,7 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When constructing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### All Filters @@ -287,7 +301,7 @@ In addition, the following global filters are available as part of `where` argum _change_block(number_gte: Int) ``` -### Time-travel queries +### Time-travel Queries You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. @@ -295,7 +309,7 @@ The result of such a query will not change over time, i.e., querying at a certai > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### उदाहरण +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ The result of such a query will not change over time, i.e., querying at a certai This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. -#### उदाहरण - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ This query will return `Challenge` entities, and their associated `Application` This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. -### Fulltext Search Queries +### Full-text Search Queries -Fulltext search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add fulltext search to your Subgraph. +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -Fulltext search queries have one required field, `text`, for supplying search terms. Several special fulltext operators are available to be used in this `text` search field. +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Fulltext search operators: +Full-text search operators: -| Symbol | Operator | वर्णन | -| --- | --- | --- | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Symbol | Operator | वर्णन | | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | +| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | -#### Examples +#### Full-text Query Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their fulltext fields. +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies a words a specific distance apart in the fulltext documents. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ The `follow by` operator specifies a words a specific distance apart in the full } ``` -Combine fulltext operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Combine fulltext operators to make more complex filters. With a pretext search o Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. -## Schema - -The schema of your dataSources, i.e. the entity types, values, and relationships that are available to query, are defined through the [GraphQL Interface Definition Language (IDL)](https://facebook.github.io/graphql/draft/#sec-Type-System). - -GraphQL schemas generally define root types for `queries`, `subscriptions` and `mutations`. The Graph only supports `queries`. The root `Query` type for your Subgraph is automatically generated from the GraphQL schema that's included in your [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph). - -> Note: Our API does not expose mutations because developers are expected to issue transactions directly against the underlying blockchain from their applications. - -### Entities - -All GraphQL types with `@entity` directives in your schema will be treated as entities and must have an `ID` field. - -> **Note:** Currently, all types in your schema must have an `@entity` directive. In the future, we will treat types without an `@entity` directive as value objects, but this is not yet supported. - ### Subgraph Metadata All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: From 839ae7d52f0d358c29ea78e0905c5237de37a459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 23 Apr 2025 16:34:00 -0400 Subject: [PATCH 0269/1709] New translations graphql-api.mdx (Hindi) --- .../hi/subgraphs/querying/graphql-api.mdx | 118 +++++++++--------- 1 file changed, 58 insertions(+), 60 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx index a0e9da503a74..761e645fc479 100644 --- a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx @@ -2,21 +2,35 @@ title: ग्राफक्यूएल एपीआई --- -The Graph में उपयोग किए जाने वाले GraphQL Query API के बारे में जानें। +Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. ## GraphQL क्या है? [GraphQL](https://graphql.org/learn/) एक API के लिए क्वेरी भाषा है और मौजूदा डेटा के साथ उन क्वेरियों को निष्पादित करने के लिए एक रनटाइम है। The Graph, GraphQL का उपयोग करके Subgraphs से क्वेरी करता है। -To समझने के लिए कि GraphQL बड़ी भूमिका कैसे निभाता है, [developing](/subgraphs/developing/introduction/) और [creating a Subgraph](/developing/creating-a-subgraph/) की समीक्षा करें। +## Core Concepts + +### इकाइयां + +- **What they are**: Persistent data objects defined with `@entity` in your schema +- **Key requirement**: Must contain `id: ID!` as primary identifier +- **Usage**: Foundation for all query operations + +### योजना + +- **Purpose**: Blueprint defining the data structure and relationships using GraphQL [IDL](https://facebook.github.io/graphql/draft/#sec-Type-System) +- **Key characteristics**: + - Auto-generates query endpoints + - Read-only operations (no mutations) + - Defines entity interfaces and derived fields ## GraphQL के साथ क्वेरीज़ -आपकी Subgraph schema में `Entities` नामक प्रकारों को परिभाषित किया जाता है। प्रत्येक `Entity` प्रकार के लिए, शीर्ष-स्तरीय Query प्रकार पर `entity` और `entities` फ़ील्ड जेनरेट की जाएंगी। +In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. -> ध्यान दें: 'queries' को The Graph का उपयोग करते समय 'graphql' क्वेरी के शीर्ष पर शामिल करने की आवश्यकता नहीं है। +### Example Queries -### उदाहरण +> ध्यान दें: 'queries' को The Graph का उपयोग करते समय 'graphql' क्वेरी के शीर्ष पर शामिल करने की आवश्यकता नहीं है। एकल 'Token' एंटिटी के लिए क्वेरी करें जो आपके स्कीमा में परिभाषित है @@ -44,7 +58,7 @@ To समझने के लिए कि GraphQL बड़ी भूमिक ### Her translation means sorting out -जब आप एक संग्रह के लिए क्वेरी कर रहे हों, तो आप: +When querying a collection, you can: - 'orderBy' पैरामीटर का उपयोग किसी विशिष्ट गुण द्वारा सॉर्ट करने के लिए करें। - 'orderDirection' का उपयोग सॉर्ट दिशा निर्दिष्ट करने के लिए करें, 'asc' के लिए आरोही या 'desc' के लिए अवरोही। @@ -60,7 +74,7 @@ To समझने के लिए कि GraphQL बड़ी भूमिक } ``` -#### नेस्टेड इकाई छँटाई के लिए उदाहरण +#### Example for Nested Entity Sorting Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) के अनुसार, entities को nested entities के आधार पर क्रमबद्ध किया जा सकता है। @@ -88,7 +102,7 @@ Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/ - `skip` पैरामीटर का उपयोग entities को स्किप करने और पेजिनेट करने के लिए करें। instancesके लिए, first:100 पहले 100 entities दिखाता है और first:100, skip:100 अगले 100 entities दिखाता है। - `skip` मानों का उपयोग queries में करने से बचें क्योंकि ये सामान्यतः खराब प्रदर्शन करते हैं। एक बड़ी संख्या में आइटम प्राप्त करने के लिए, पिछले उदाहरण में दिखाए गए अनुसार किसी गुण के आधार पर entities के माध्यम से पेज करना सबसे अच्छा होता है। -#### उदाहरण जो `first` का उपयोग करता है +#### Example Using `first` पहले 10 टोकन पूछें: @@ -101,9 +115,9 @@ Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/ } ``` -संग्रह के मध्य में स्थित entities के समूहों के लिए queries करने के लिए, `skip` पैरामीटर को `first` पैरामीटर के साथ उपयोग किया जा सकता है, ताकि संग्रह की शुरुआत से निर्धारित संख्या में entities को छोड़ दिया जा सके। +To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. -#### `first` और `skip` का उपयोग करते हुए उदाहरण +#### Example Using `first` and `skip` कलेक्शन की शुरुआत से 10 स्थानों के बाद 10 `Token` entities को queries करें। @@ -116,7 +130,7 @@ Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/ } ``` -#### उदाहरण 'first' और 'id_ge' का उपयोग करते हुए। +#### Example Using `first` and `id_ge` यदि एक क्लाइंट को बड़ी संख्या में एंटिटीज़ पुनर्प्राप्त करने की आवश्यकता है, तो एट्रिब्यूट पर आधारित क्वेरी बनाना और उस एट्रिब्यूट द्वारा फ़िल्टर करना अधिक प्रभावशाली है। उदाहरण के लिए, एक क्लाइंट इस क्वेरी का उपयोग करके बड़ी संख्या में टोकन पुनर्प्राप्त कर सकता है: @@ -136,9 +150,9 @@ query manyTokens($lastID: String) { - आप अपनी क्वेरी में विभिन्न गुणों को फ़िल्टर करने के लिए 'where' पैरामीटर का उपयोग कर सकते हैं। - आप 'where' पैरामीटर के भीतर कई मानों पर फ़िल्टर कर सकते हैं। -#### उदाहरण 'where' का उपयोग करते हुए +#### Using `where` Filtering -'failed' परिणाम वाली क्वेरी चुनौतियाँ: +Query challenges with `failed` outcome using 'where' filter: ```graphql { @@ -152,9 +166,9 @@ query manyTokens($lastID: String) { } ``` -आप मूल्य तुलना के लिए '\_gt' , '\_lte' जैसे प्रत्ययों का उपयोग कर सकते हैं। +आप मूल्य तुलना के लिए '_gt' , '_lte' जैसे प्रत्ययों का उपयोग कर सकते हैं। -#### श्रेणी फ़िल्टरिंग के लिए उदाहरण +#### Range Filtering ```graphql { @@ -166,9 +180,9 @@ query manyTokens($lastID: String) { } ``` -#### ब्लॉक फ़िल्टरिंग के लिए उदाहरण +#### Block Filtering -आप उन इकाइयों entities को भी फ़िल्टर कर सकते हैं जिन्हें किसी निर्दिष्ट ब्लॉक में या उसके बाद अपडेट किया गया था, '\_change_block(number_gte: Int)' के साथ। +आप उन इकाइयों entities को भी फ़िल्टर कर सकते हैं जिन्हें किसी निर्दिष्ट ब्लॉक में या उसके बाद अपडेट किया गया था, '_change_block(number_gte: Int)' के साथ। यह उपयोगी हो सकता है यदि आप केवल उन entities को लाना चाहते हैं जो बदल गई हैं, उदाहरण के लिए, पिछली बार जब आपने पोल किया था तब से। या वैकल्पिक रूप से, यह जांचने या डिबग करने के लिए उपयोगी हो सकता है कि आपकी Subgraph में entities कैसे बदल रही हैं (यदि इसे एक ब्लॉक फ़िल्टर के साथ जोड़ा जाए, तो आप केवल उन्हीं entities को अलग कर सकते हैं जो एक विशिष्ट ब्लॉक में बदली हैं)। @@ -182,9 +196,9 @@ query manyTokens($lastID: String) { } ``` -#### नेस्टेड इकाई फ़िल्टरिंग के लिए उदाहरण +#### Nested Entity Filtering -नेस्टेड इकाइयों के आधार पर फ़िल्टरिंग उन फ़ील्ड्स में संभव है जिनके अंत में '\_' प्रत्यय होता है। +नेस्टेड इकाइयों के आधार पर फ़िल्टरिंग उन फ़ील्ड्स में संभव है जिनके अंत में '_' प्रत्यय होता है। यह उपयोगी हो सकता है यदि आप केवल उन संस्थाओं को लाना चाहते हैं जिनके चाइल्ड-स्तरीय निकाय प्रदान की गई शर्तों को पूरा करते हैं। @@ -200,13 +214,13 @@ query manyTokens($lastID: String) { } ``` -#### लॉजिकल ऑपरेटर्स +### Logical Operators ग्राफ-नोड ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) से, आप एक ही 'where' आर्गुमेंट में कई पैरामीटर्स को समूहित कर सकते हैं और 'and' या 'or' ऑपरेटर्स का उपयोग करके एक से अधिक मानदंडों के आधार पर परिणामों को फ़िल्टर कर सकते हैं। -##### `AND` ऑपरेटर +#### Using `and` Operator -निम्नलिखित उदाहरण उन चुनौतियों को फ़िल्टर करता है जिनका `outcome`` succeeded` है और जिनका `number` `100` या उससे अधिक है। +निम्नलिखित उदाहरण उन चुनौतियों को फ़िल्टर करता है जिनका ```outcome`` succeeded``` है और जिनका `number` `100` या उससे अधिक है। ```graphql { @@ -220,7 +234,7 @@ query manyTokens($lastID: String) { } ``` -> **सिंटैक्टिक शुगर**: आप उपरोक्त को queriesसरल बना सकते हैं `and` ऑपरेटर को हटाकर और उप-वाक्यांश को कॉमा से अलग करके पास करके। +> **सिंटैक्टिक शुगर**: आप उपरोक्त को queriesसरल बना सकते हैं `and` ऑपरेटर को हटाकर और उप-वाक्यांश को कॉमा से अलग करके पास करके। > > ```graphql > { @@ -234,7 +248,7 @@ query manyTokens($lastID: String) { > } > ``` -##### `OR` ऑपरेटर। +#### Using `or` Operator निम्नलिखित उदाहरण उन चुनौतियों को फ़िल्टर करता है जिनका `outcome` `succeeded` है या जिनका `number` `100` या उससे अधिक है। @@ -250,7 +264,7 @@ query manyTokens($lastID: String) { } ``` -> **नोट**: queries बनाते समय, `or` ऑपरेटर के उपयोग से होने वाले प्रदर्शन प्रभावों पर विचार करना महत्वपूर्ण है। हालांकि `or` खोज परिणामों को व्यापक बनाने के लिए एक उपयोगी उपकरण हो सकता है, लेकिन इसके कुछ महत्वपूर्ण लागतें भी होती हैं। `or` के साथ मुख्य समस्या यह है कि यह queries को धीमा कर सकता है। इसका कारण यह है कि `or` के उपयोग से डेटाबेस को कई इंडेक्स स्कैन करने पड़ते हैं, जो एक समय-सापेक्ष प्रक्रिया हो सकती है। इन समस्याओं से बचने के लिए, यह अनुशंसा की जाती है कि डेवलपर्स or के बजाय and ऑपरेटर का उपयोग करें जब भी संभव हो। यह अधिक सटीक फ़िल्टरिंग की अनुमति देता है और तेज़, अधिक सटीक queries प्रदान कर सकता है। +> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. #### सभी फ़िल्टर @@ -279,7 +293,7 @@ _not_ends_with _not_ends_with_nocase ``` -> कुछ प्रत्यय केवल विशिष्ट प्रकारों के लिए समर्थित होते हैं। उदाहरण के लिए, `Boolean` केवल` _not, _in`, और `_not_`in का समर्थन करता है, लेकिन \_ केवल ऑब्जेक्ट और इंटरफेस प्रकारों के लिए उपलब्ध है। +> कुछ प्रत्यय केवल विशिष्ट प्रकारों के लिए समर्थित होते हैं। उदाहरण के लिए, `Boolean` केवल` _not, _in`, और `_not_`in का समर्थन करता है, लेकिन _ केवल ऑब्जेक्ट और इंटरफेस प्रकारों के लिए उपलब्ध है। इसके अलावा, `where` आर्ग्यूमेंट के हिस्से के रूप में निम्नलिखित वैश्विक फ़िल्टर उपलब्ध हैं: @@ -287,15 +301,15 @@ _not_ends_with_nocase _change_block(number_gte: Int) ``` -### समय-यात्रा क्वेरी +### Time-travel Queries -आप न केवल नवीनतम ब्लॉक के लिए, जो डिफ़ॉल्ट होता है, बल्कि अतीत के किसी भी मनमाने ब्लॉक के लिए भी अपनी entities की स्थिति को queries कर सकते हैं। जिस ब्लॉक पर queries होनी चाहिए, उसे या तो उसके ब्लॉक नंबर या उसके ब्लॉक हैश द्वारा निर्दिष्ट किया जा सकता है, इसके लिए queries के शीर्ष स्तर के फ़ील्ड्स में block आर्ग्यूमेंट शामिल किया जाता है। +आप न केवल नवीनतम ब्लॉक के लिए, जो डिफ़ॉल्ट होता है, बल्कि अतीत के किसी भी मनमाने ब्लॉक के लिए भी अपनी entities की स्थिति को queries कर सकते हैं। जिस ब्लॉक पर queries होनी चाहिए, उसे या तो उसके ब्लॉक नंबर या उसके ब्लॉक हैश द्वारा निर्दिष्ट किया जा सकता है, इसके लिए queries के शीर्ष स्तर के फ़ील्ड्स में block आर्ग्यूमेंट शामिल किया जाता है। ऐसे queries का परिणाम समय के साथ नहीं बदलेगा, यानी किसी निश्चित पिछले ब्लॉक परqueries करने से हमेशा वही परिणाम मिलेगा, चाहे इसे कभी भी निष्पादित किया जाए। इसका एकमात्र अपवाद यह है कि यदि आप किसी ऐसे ब्लॉक पर queries करते हैं जो chain के हेड के बहुत करीब है, तो परिणाम बदल सकता है यदि वह ब्लॉक मुख्य chain पर **not** होता है और chain का पुनर्गठन हो जाता है। एक बार जब किसी ब्लॉक को अंतिम (final) माना जा सकता है, तो queries का परिणाम नहीं बदलेगा। > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### उदाहरण +#### Example Time-travel Queries ```graphql { @@ -311,8 +325,6 @@ _change_block(number_gte: Int) यह queries `Challenge` entities और उनके संबद्ध `Application` entities को लौटाएगी, जैसा कि वे ब्लॉक संख्या 8,000,000 के प्रोसेस होने के ठीक बाद मौजूद थे। -#### उदाहरण - ```graphql { challenges(block: { hash: "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c" }) { @@ -327,24 +339,24 @@ _change_block(number_gte: Int) यह queries `Challenge` entities और उनसे संबंधित `Application` entities को वापस करेगी, जैसा कि वे दिए गए हैश वाले ब्लॉक को प्रोसेस करने के तुरंत बाद मौजूद थीं। -### पूर्ण पाठ खोज प्रश्न +### Full-text Search Queries -Fulltext search query fields एक अभिव्यक्तिपूर्ण टेक्स्ट खोज API प्रदान करते हैं जिसे Subgraph schema में जोड़ा जा सकता है और अनुकूलित किया जा सकता है। Fulltext search को अपने Subgraph में जोड़ने के लिए [Defining Fulltext Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) देखें। +Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. -फ़ुलटेक्स्ट सर्च क्वेरीज़ में एक आवश्यक फ़ील्ड होता है, ' text ', जिसमें सर्च शब्द प्रदान किए जाते हैं। इस ' text ' सर्च फ़ील्ड में उपयोग करने के लिए कई विशेष फ़ुलटेक्स्ट ऑपरेटर उपलब्ध हैं। +Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -पूर्ण पाठ खोज ऑपरेटर: +Full-text search operators: -| प्रतीक | ऑपरेटर | Description | -| --- | --- | --- | -| `&` | `And` | सभी प्रदान किए गए शब्दों को शामिल करने वाली संस्थाओं के लिए एक से अधिक खोज शब्दों को फ़िल्टर में संयोजित करने के लिए | -| | | ' Or' | या ऑपरेटर द्वारा अलग किए गए एकाधिक खोज शब्दों वाली क्वेरी सभी संस्थाओं को प्रदान की गई शर्तों में से किसी से मेल के साथ वापस कर देगी | -| `<->` | ' द्वारा अनुसरण करें ' | दो शब्दों के बीच की दूरी निर्दिष्ट करें। | -| `:*` | ' उपसर्ग ' | उन शब्दों को खोजने के लिए उपसर्ग खोज शब्द का उपयोग करें जिनके उपसर्ग मेल खाते हैं (2 वर्ण आवश्यक हैं।) | +| प्रतीक | ऑपरेटर | Description | | +| ------ | ---------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | सभी प्रदान किए गए शब्दों को शामिल करने वाली संस्थाओं के लिए एक से अधिक खोज शब्दों को फ़िल्टर में संयोजित करने के लिए | | +| | | ' Or' | या ऑपरेटर द्वारा अलग किए गए एकाधिक खोज शब्दों वाली क्वेरी सभी संस्थाओं को प्रदान की गई शर्तों में से किसी से मेल के साथ वापस कर देगी | +| `<->` | ' द्वारा अनुसरण करें ' | दो शब्दों के बीच की दूरी निर्दिष्ट करें। | | +| `:*` | ' उपसर्ग ' | उन शब्दों को खोजने के लिए उपसर्ग खोज शब्द का उपयोग करें जिनके उपसर्ग मेल खाते हैं (2 वर्ण आवश्यक हैं।) | | -#### उदाहरण +#### Full-text Query Examples -' or 'ऑपरेटर का उपयोग करके, यह क्वेरी उन ब्लॉग एंटिटीज़ को फ़िल्टर करेगी जिनके पूर्ण-पाठ (fulltext) फ़ील्ड में "anarchism" या "crumpet" में से किसी एक के विभिन्न रूप शामिल हैं। +Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. ```graphql { @@ -357,7 +369,7 @@ Fulltext search query fields एक अभिव्यक्तिपूर् } ``` -' follow by ' ऑपरेटर पूर्ण-पाठ दस्तावेज़ों में विशिष्ट दूरी पर स्थित शब्दों को निर्दिष्ट करता है। निम्नलिखित क्वेरी उन सभी ब्लॉगों को लौटाएगी जिनमें "विकेंद्रीकृत" के विभिन्न रूप "philosophy" के बाद आते हैं। +The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" ```graphql { @@ -370,7 +382,7 @@ Fulltext search query fields एक अभिव्यक्तिपूर् } ``` -अधिक जटिल फिल्टर बनाने के लिए फुलटेक्स्ट ऑपरेटरों को मिलाएं। इस उदाहरण क्वेरी के अनुसरण के साथ एक बहाना खोज ऑपरेटर संयुक्त रूप से सभी ब्लॉग संस्थाओं को उन शब्दों से मिलाएगा जो "लू" से शुरू होते हैं और उसके बाद "संगीत"। +Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". ```graphql { @@ -387,20 +399,6 @@ Fulltext search query fields एक अभिव्यक्तिपूर् Graph Node अपने द्वारा प्राप्त GraphQL क्वेरी की स्पेसिफिकेशन-आधारित(https://spec.graphql.org/October2021/#sec-Validation) वैलिडेशन करता है, जो graphql-tools-rs(https://github.com/dotansimha/graphql-tools-rs#validation-rules) पर आधारित है, जो graphql-js संदर्भ कार्यान्वयन(https://github.com/graphql/graphql-js/tree/main/src/validation) पर आधारित है। क्वेरी जो वैलिडेशन नियम में विफल होती हैं, वे एक मानक त्रुटि के साथ विफल होती हैं - अधिक जानने के लिए GraphQL स्पेसिफिकेशन(https://spec.graphql.org/October2021/#sec-Validation) पर जाएं। -## योजना - -आपके डेटा स्रोतों का स्कीमा, अर्थात् उपलब्ध प्रश्न करने के लिए संस्थाओं की प्रकार, मान और उनके बीच के संबंध, GraphQL Interface Definition Language (IDL)(https://facebook.github.io/graphql/draft/#sec-Type-System) के माध्यम से परिभाषित किए गए हैं। - -GraphQL स्कीमाएँ आमतौर पर queries, subscriptions और mutations के लिए रूट टाइप्स को परिभाषित करती हैं। The Graph केवल queries को सपोर्ट करता है। आपके Subgraph के लिए रूट Query टाइप अपने आप उत्पन्न हो जाता है, जो कि आपके [Subgraph manifest](/developing/creating-a-subgraph/#components-of-a-subgraph) में शामिल GraphQL स्कीमा से आता है। - -> ध्यान दें: हमारा एपीआई म्यूटेशन को उजागर नहीं करता है क्योंकि डेवलपर्स से उम्मीद की जाती है कि वे अपने एप्लिकेशन से अंतर्निहित ब्लॉकचेन के खिलाफ सीधे लेन-देन(transaction) जारी करेंगे। - -### इकाइयां - -आपके स्कीमा में जिन भी GraphQL प्रकारों में @entity निर्देश होते हैं, उन्हें संस्थाएँ (entities) माना जाएगा और उनमें एक ID फ़ील्ड होना चाहिए। - -> नोट: वर्तमान में, आपकी स्कीमा में सभी प्रकारों में @entity निर्देश होना चाहिए। भविष्य में, हम उन प्रकारों को मूल्य वस्तुएं मानेंगे जिनमें @entity निर्देश नहीं होगा, लेकिन यह अभी तक समर्थित नहीं है। - ### सबग्राफ मेटाडेटा सभी Subgraph में एक स्वचालित रूप से उत्पन्न `_Meta_` ऑब्जेक्ट होता है, जो Subgraph मेटाडाटा तक पहुंच प्रदान करता है। इसे निम्नलिखित तरीके से क्वेरी किया जा सकता है: @@ -423,7 +421,7 @@ GraphQL स्कीमाएँ आमतौर पर queries, subscriptions deployment एक विशिष्ट ID है, जो subgraph.yaml फ़ाइल के IPFS CID के अनुरूप है। -block नवीनतम ब्लॉक के बारे में जानकारी प्रदान करता है (किसी भी ब्लॉक सीमाओं को ध्यान में रखते हुए जो कि \_meta में पास की जाती हैं): +block नवीनतम ब्लॉक के बारे में जानकारी प्रदान करता है (किसी भी ब्लॉक सीमाओं को ध्यान में रखते हुए जो कि _meta में पास की जाती हैं): - हैश: ब्लॉक का हैश - नंबर: ब्लॉक नंबर From bb594ea9d81f87186ff9043e17a2e722ca32f7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:24 -0400 Subject: [PATCH 0270/1709] New translations graph-node.mdx (Romanian) --- website/src/pages/ro/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ro/indexing/tooling/graph-node.mdx b/website/src/pages/ro/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/ro/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ro/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 7ee7edd92d8d927fc86e41b8d836f1a171fc7999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:25 -0400 Subject: [PATCH 0271/1709] New translations graph-node.mdx (French) --- website/src/pages/fr/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/fr/indexing/tooling/graph-node.mdx b/website/src/pages/fr/indexing/tooling/graph-node.mdx index dbed55fcd2d6..a425ac25b17a 100644 --- a/website/src/pages/fr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/fr/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Il s'agit d'une nouvelle fonctionnalité qui sera disponible dans Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 0158e8c5fae832886ab6f3727f6ef0dac04e282c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:26 -0400 Subject: [PATCH 0272/1709] New translations graph-node.mdx (Spanish) --- website/src/pages/es/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/es/indexing/tooling/graph-node.mdx b/website/src/pages/es/indexing/tooling/graph-node.mdx index 3e87e3a58908..f0dbc4756468 100644 --- a/website/src/pages/es/indexing/tooling/graph-node.mdx +++ b/website/src/pages/es/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Se trata de una nueva funcionalidad, que estará disponible en Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 7c59e23aab2a8b4ac23a2e10d0225dada4991821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:28 -0400 Subject: [PATCH 0273/1709] New translations graph-node.mdx (Arabic) --- website/src/pages/ar/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ar/indexing/tooling/graph-node.mdx b/website/src/pages/ar/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/ar/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ar/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From b136c7382c4edb1c5354b88179c614e122ca93b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:29 -0400 Subject: [PATCH 0274/1709] New translations graph-node.mdx (Czech) --- website/src/pages/cs/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/cs/indexing/tooling/graph-node.mdx b/website/src/pages/cs/indexing/tooling/graph-node.mdx index b6335d705be8..a06e72d7103d 100644 --- a/website/src/pages/cs/indexing/tooling/graph-node.mdx +++ b/website/src/pages/cs/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Jedná se o novou funkci, která bude k dispozici v uzlu Graf 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 1ea97ba6ab48d65e5dbbbfd3323a7c129c46e4a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:30 -0400 Subject: [PATCH 0275/1709] New translations graph-node.mdx (German) --- website/src/pages/de/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/de/indexing/tooling/graph-node.mdx b/website/src/pages/de/indexing/tooling/graph-node.mdx index 81b54b23959c..a4857509324d 100644 --- a/website/src/pages/de/indexing/tooling/graph-node.mdx +++ b/website/src/pages/de/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Entfernen von Subgraphen -> This is new functionality, which will be available in Graph Node 0.29.x - Irgendwann möchte ein Indexer vielleicht einen bestimmten Subgraph entfernen. Dies kann einfach mit `graphman drop` gemacht werden, welches einen Einsatz und alle indizierten Daten löscht. Der Einsatz kann entweder als Name eines Subgraphen, als IPFS-Hash `Qm..` oder als Datenbank-Namensraum `sgdNNN` angegeben werden. Weitere Dokumentation ist [hier](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop) verfügbar. From ef5375b427d5665d1e013d7f7b6006e39a54168e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:32 -0400 Subject: [PATCH 0276/1709] New translations graph-node.mdx (Italian) --- website/src/pages/it/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/it/indexing/tooling/graph-node.mdx b/website/src/pages/it/indexing/tooling/graph-node.mdx index 29d3066cb2ae..7c50775bfe03 100644 --- a/website/src/pages/it/indexing/tooling/graph-node.mdx +++ b/website/src/pages/it/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Si tratta di una nuova funzionalità, che sarà disponibile in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 114e021a6c444b8cb510c968776090a503fe83bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:33 -0400 Subject: [PATCH 0277/1709] New translations graph-node.mdx (Japanese) --- website/src/pages/ja/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ja/indexing/tooling/graph-node.mdx b/website/src/pages/ja/indexing/tooling/graph-node.mdx index 93a57db23e2e..88b32b795699 100644 --- a/website/src/pages/ja/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ja/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> これは新しい機能で、Graph Node 0.29.xで利用可能になる予定です。 - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From eb28b7f02b5772a4dfdf97a45d928f09d21b8f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:37 -0400 Subject: [PATCH 0278/1709] New translations graph-node.mdx (Korean) --- website/src/pages/ko/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ko/indexing/tooling/graph-node.mdx b/website/src/pages/ko/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/ko/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ko/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 26550348cc1ae57a895169b2c59758dc7efcd6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:40 -0400 Subject: [PATCH 0279/1709] New translations graph-node.mdx (Dutch) --- website/src/pages/nl/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/nl/indexing/tooling/graph-node.mdx b/website/src/pages/nl/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/nl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/nl/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 035c762d0954422ddec85099d39b41b9de4ea0d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:42 -0400 Subject: [PATCH 0280/1709] New translations graph-node.mdx (Polish) --- website/src/pages/pl/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/pl/indexing/tooling/graph-node.mdx b/website/src/pages/pl/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/pl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pl/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 35c1ea265549a359c251ee8c07a8547ec5384d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:43 -0400 Subject: [PATCH 0281/1709] New translations graph-node.mdx (Portuguese) --- website/src/pages/pt/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/pt/indexing/tooling/graph-node.mdx b/website/src/pages/pt/indexing/tooling/graph-node.mdx index 8d85735d60bf..f521db588759 100644 --- a/website/src/pages/pt/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pt/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ Para subgraphs parecidos com o Uniswap, as tábuas `pair` e `token` são ótimas #### Como remover subgraphs -> Esta é uma funcionalidade nova, que estará disponível no Graph Node 0.29.x - Em certo ponto, o indexador pode querer remover um subgraph. É só usar o `graphman drop`, que apaga uma implantação e todos os seus dados indexados. A implantação pode ser especificada como o nome de um subgraph, um hash IPFS `Qm..`, ou o namespace de banco de dados `sgdNNN`. Mais documentos sobre o processo [aqui](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 5d15b79cf2f6faec68c987f03520129775966e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:44 -0400 Subject: [PATCH 0282/1709] New translations graph-node.mdx (Russian) --- website/src/pages/ru/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ru/indexing/tooling/graph-node.mdx b/website/src/pages/ru/indexing/tooling/graph-node.mdx index 05fabb843b74..31c4e4aca1cd 100644 --- a/website/src/pages/ru/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ru/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Это новый функционал, который будет доступен в Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 0fa2f7e276895ab03d3b280f16747a2d59b9ab67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:46 -0400 Subject: [PATCH 0283/1709] New translations graph-node.mdx (Swedish) --- website/src/pages/sv/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/sv/indexing/tooling/graph-node.mdx b/website/src/pages/sv/indexing/tooling/graph-node.mdx index 3e624ab52527..10f8e8793b0f 100644 --- a/website/src/pages/sv/indexing/tooling/graph-node.mdx +++ b/website/src/pages/sv/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Detta är ny funktionalitet, som kommer att vara tillgänglig i Graf Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From b6ac4084ebe2c84541f4e926a5590e4aea1ecb7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:47 -0400 Subject: [PATCH 0284/1709] New translations graph-node.mdx (Turkish) --- website/src/pages/tr/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/tr/indexing/tooling/graph-node.mdx b/website/src/pages/tr/indexing/tooling/graph-node.mdx index da782fe0afdc..dc97a872ff32 100644 --- a/website/src/pages/tr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/tr/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> Bu, Graph Node 0.29.x sürümünde kullanılabilir olan yeni bir fonksiyonelliktir - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 311d107e05e031317c1ea39902eebf6bd956829b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:49 -0400 Subject: [PATCH 0285/1709] New translations graph-node.mdx (Ukrainian) --- website/src/pages/uk/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/uk/indexing/tooling/graph-node.mdx b/website/src/pages/uk/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/uk/indexing/tooling/graph-node.mdx +++ b/website/src/pages/uk/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 46566ba4daa7815f1dcd9110411dfc52efb01f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:50 -0400 Subject: [PATCH 0286/1709] New translations graph-node.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/zh/indexing/tooling/graph-node.mdx b/website/src/pages/zh/indexing/tooling/graph-node.mdx index ee1e0df027d4..28b672699dc8 100644 --- a/website/src/pages/zh/indexing/tooling/graph-node.mdx +++ b/website/src/pages/zh/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ The command `graphman stats show ` shows, for each entity type/table in #### 删除子图 -> 这是一项新功能,将在Graph节点0.29.x中提供。 - 在某个时刻,索引人可能想要删除给定的子图。这可以通过删除部署及其所有索引数据的`graphman drop`, 轻松完成。部署可以被指定为子图名称、IPFS has、`Qm..`,或数据库命名空间`sgdNNN`。[此处](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop)提供了更多文档。 From 268974fab6da0ae85ec8a8648ea1a98a8da34d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:51 -0400 Subject: [PATCH 0287/1709] New translations graph-node.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/ur/indexing/tooling/graph-node.mdx b/website/src/pages/ur/indexing/tooling/graph-node.mdx index 9d4206086f59..4ced6b7faf14 100644 --- a/website/src/pages/ur/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ur/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> یہ نئی فعالیت ہے، جو گراف نوڈ 0.29.x میں دستیاب ہوگی - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 408f4c6e1572c6e616ae685d06c645f3af764b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:52 -0400 Subject: [PATCH 0288/1709] New translations graph-node.mdx (Vietnamese) --- website/src/pages/vi/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/vi/indexing/tooling/graph-node.mdx b/website/src/pages/vi/indexing/tooling/graph-node.mdx index b3317ca9716f..673a3ece4d12 100644 --- a/website/src/pages/vi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/vi/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 71d58fe3e38288304f43f98184179e7400725c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:54 -0400 Subject: [PATCH 0289/1709] New translations graph-node.mdx (Marathi) --- website/src/pages/mr/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/mr/indexing/tooling/graph-node.mdx b/website/src/pages/mr/indexing/tooling/graph-node.mdx index 10e682be7f67..15ba0fbb69ab 100644 --- a/website/src/pages/mr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/mr/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ For Uniswap-like Subgraphs, the `pair` and `token` tables are prime candidates f #### Removing Subgraphs -> This is new functionality, which will be available in Graph Node 0.29.x - At some point an indexer might want to remove a given Subgraph. This can be easily done via `graphman drop`, which deletes a deployment and all it's indexed data. The deployment can be specified as either a Subgraph name, an IPFS hash `Qm..`, or the database namespace `sgdNNN`. Further documentation is available [here](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop). From 5ba8cd26049e2129f811764043ebb787677df8e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 25 Apr 2025 15:19:55 -0400 Subject: [PATCH 0290/1709] New translations graph-node.mdx (Hindi) --- website/src/pages/hi/indexing/tooling/graph-node.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/src/pages/hi/indexing/tooling/graph-node.mdx b/website/src/pages/hi/indexing/tooling/graph-node.mdx index 4b6911f0c5cf..c78de7612036 100644 --- a/website/src/pages/hi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/hi/indexing/tooling/graph-node.mdx @@ -340,6 +340,4 @@ Uniswap जैसी Subgraphs के लिए, `pair` और `token` टेब #### सबग्राफ हटाना -> यह new functionality है, जो garph node 0.29.x में उपलब्ध होगी - At some point, एक Indexer किसी दिए गए Subgraph को हटाना चाह सकता है। यह आसानी से `graphman drop` के माध्यम से किया जा सकता है, जो एक deployment और उसके सभी indexed डेटा को हटा देता है। Deployment को या तो सबग्राफ नाम, एक IPFS हैश `Qm..`, या डेटाबेस namespace `sgdNNN` के रूप में निर्दिष्ट किया जा सकता है। आगे का दस्तावेज़ [यहाँ](https://github.com/graphprotocol/graph-node/blob/master/docs/graphman.md#-drop) उपलब्ध है। From 4b01135c8740dc2bae83a5da6e1c19fae67367f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:41 -0400 Subject: [PATCH 0291/1709] New translations faq.mdx (Romanian) --- website/src/pages/ro/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ro/token-api/faq.mdx b/website/src/pages/ro/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/ro/token-api/faq.mdx +++ b/website/src/pages/ro/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 3db6609bc28bd613da6df3cb5db087dcfd7f9c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:43 -0400 Subject: [PATCH 0292/1709] New translations faq.mdx (French) --- website/src/pages/fr/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/fr/token-api/faq.mdx b/website/src/pages/fr/token-api/faq.mdx index 55125891c079..5b7dff514baf 100644 --- a/website/src/pages/fr/token-api/faq.mdx +++ b/website/src/pages/fr/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From e55b15673de5935290b2383a9e1d2042738eec02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:44 -0400 Subject: [PATCH 0293/1709] New translations faq.mdx (Spanish) --- website/src/pages/es/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/es/token-api/faq.mdx b/website/src/pages/es/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/es/token-api/faq.mdx +++ b/website/src/pages/es/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 8332e33c6a381ffc49fd166fee487084398f163f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:45 -0400 Subject: [PATCH 0294/1709] New translations faq.mdx (Arabic) --- website/src/pages/ar/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ar/token-api/faq.mdx b/website/src/pages/ar/token-api/faq.mdx index 8c1032894ddb..33b75660284d 100644 --- a/website/src/pages/ar/token-api/faq.mdx +++ b/website/src/pages/ar/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 0d978d54a72edb927bfa807f4fb32e521dd6f902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:47 -0400 Subject: [PATCH 0295/1709] New translations faq.mdx (Czech) --- website/src/pages/cs/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/cs/token-api/faq.mdx b/website/src/pages/cs/token-api/faq.mdx index 83196959be14..41ffe213084e 100644 --- a/website/src/pages/cs/token-api/faq.mdx +++ b/website/src/pages/cs/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From ed59f7921bf92f58b7ffb4d2c248cbb8c8b5c311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:48 -0400 Subject: [PATCH 0296/1709] New translations faq.mdx (German) --- website/src/pages/de/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/de/token-api/faq.mdx b/website/src/pages/de/token-api/faq.mdx index c90af204668f..166104ef5562 100644 --- a/website/src/pages/de/token-api/faq.mdx +++ b/website/src/pages/de/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 820abb88954e6f2a344f730f89232a2a3e6787b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:50 -0400 Subject: [PATCH 0297/1709] New translations faq.mdx (Italian) --- website/src/pages/it/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/it/token-api/faq.mdx b/website/src/pages/it/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/it/token-api/faq.mdx +++ b/website/src/pages/it/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From b2c11572becbeae9d37239a41e97f65f83b1ccf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:51 -0400 Subject: [PATCH 0298/1709] New translations faq.mdx (Japanese) --- website/src/pages/ja/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ja/token-api/faq.mdx b/website/src/pages/ja/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/ja/token-api/faq.mdx +++ b/website/src/pages/ja/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From b9d8ac8c3914a10d19dc8f55d18940a699c6526d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:52 -0400 Subject: [PATCH 0299/1709] New translations faq.mdx (Korean) --- website/src/pages/ko/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ko/token-api/faq.mdx b/website/src/pages/ko/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/ko/token-api/faq.mdx +++ b/website/src/pages/ko/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 8a7587bbcd01aa492fee016793ed274d76212498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:53 -0400 Subject: [PATCH 0300/1709] New translations faq.mdx (Dutch) --- website/src/pages/nl/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/nl/token-api/faq.mdx b/website/src/pages/nl/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/nl/token-api/faq.mdx +++ b/website/src/pages/nl/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 973565573fdbd7bc1dcb26a21f7322815c616766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:54 -0400 Subject: [PATCH 0301/1709] New translations faq.mdx (Polish) --- website/src/pages/pl/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pl/token-api/faq.mdx b/website/src/pages/pl/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/pl/token-api/faq.mdx +++ b/website/src/pages/pl/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 44048b5640c40d07d9ae42eadd98a3dba68ee124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:56 -0400 Subject: [PATCH 0302/1709] New translations faq.mdx (Portuguese) --- website/src/pages/pt/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pt/token-api/faq.mdx b/website/src/pages/pt/token-api/faq.mdx index f4ec27549974..8fa2afd7fa9b 100644 --- a/website/src/pages/pt/token-api/faq.mdx +++ b/website/src/pages/pt/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From c620c233a27a837f3c6be785b9ad9bd819970796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:58 -0400 Subject: [PATCH 0303/1709] New translations faq.mdx (Russian) --- website/src/pages/ru/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ru/token-api/faq.mdx b/website/src/pages/ru/token-api/faq.mdx index 78b478d6d7ef..563e5eeb54ba 100644 --- a/website/src/pages/ru/token-api/faq.mdx +++ b/website/src/pages/ru/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From d86f3fe7f86b1296f57045ffd93c6df103d60fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:49:59 -0400 Subject: [PATCH 0304/1709] New translations faq.mdx (Swedish) --- website/src/pages/sv/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/sv/token-api/faq.mdx b/website/src/pages/sv/token-api/faq.mdx index 8a5f3bbd358a..f8cc08f451f3 100644 --- a/website/src/pages/sv/token-api/faq.mdx +++ b/website/src/pages/sv/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 6af25b0011a783493df87807bc37655070a018ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:01 -0400 Subject: [PATCH 0305/1709] New translations faq.mdx (Turkish) --- website/src/pages/tr/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/tr/token-api/faq.mdx b/website/src/pages/tr/token-api/faq.mdx index caacf8d1b035..c933461e223d 100644 --- a/website/src/pages/tr/token-api/faq.mdx +++ b/website/src/pages/tr/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 73a7f1579aa63ba34953de71369f1473da0aed71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:02 -0400 Subject: [PATCH 0306/1709] New translations faq.mdx (Ukrainian) --- website/src/pages/uk/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/uk/token-api/faq.mdx b/website/src/pages/uk/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/uk/token-api/faq.mdx +++ b/website/src/pages/uk/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 8630b17ec9ddd7bca9805dfe06739902fca1f4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:03 -0400 Subject: [PATCH 0307/1709] New translations faq.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/zh/token-api/faq.mdx b/website/src/pages/zh/token-api/faq.mdx index dae4068e2aaa..3267bbd3cede 100644 --- a/website/src/pages/zh/token-api/faq.mdx +++ b/website/src/pages/zh/token-api/faq.mdx @@ -8,19 +8,27 @@ title: 代币 API 常见问题 ### 代币 API 支持什么区块链? -目前,代币API支持Etherum, Binance Smart Chain(BSC), Polygon, Optimism, Base, and Arbitrum One。 +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### 为什么我的 API 密钥无法从The Graph市场运行? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -请务必使用 API 密钥生成的 Access Token ,而不是 API 密钥本身。 在每个API密钥旁边的下拉菜单可以从The Graph市场上的控制板生成访问代币。 +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### API提供的数据相对于区块链的最新程度如何? API提供最新最终块的数据。 -### 如何验证对代币API的请求? +### How do I retrieve token prices? -身份验证是通过 JWT 代币通过The Graph市场获得的。 由 [Pinax](https://pinax.network/en)发布的 JWT代币,The Graph的核心开发者也获得了支持。 +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Token API 提供客户端SDK吗? @@ -36,7 +44,7 @@ API提供最新最终块的数据。 ### 是否计划支持诸如NFT等其他用途案例? -The Graph生态系统正在积极确定包括NFT在内的额外使用案例的 [roadmap](https://thegraph.com/blog/token-api-the-graph/)。 请提供您想要在 [Discord](https://discord.gg/graphprotocol)上优先级的特定功能的反馈。 +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI 主题 @@ -60,17 +68,17 @@ The Graph生态系统正在积极确定包括NFT在内的额外使用案例的 [ 检查您是否包含了 `Authorization: Bearer ` 页眉和正确且未过期的代币。 常见问题包括使用 API 密钥而不是生成一个新的 JWT, 忘记“Bearer”前缀,使用不正确的代币,或完全省略标题。 请确保您复制JWT,正好像The Graph市场提供的。 -### 是否有费率限制或使用成本?\*\* +### Are there rate limits or usage costs? Beta期间,Token API 对授权的开发者是免费的。虽然特定的费率限制没有记录,但存在着合理的节奏来防止滥用。 高请求卷可能会触发HTTP 429 错误。请监视官方公告,以了解Beta以后未来的定价变化。 -### 支持哪些网络,以及我如何指定这些网络? +### How do I specify a network? -您可以通过 [此链接](https://token-api.thegraph.com/#tag/monitoring/GET/networks)查询可用网络。 完整的网络ID列表被该图接受,可在 [The Graph的网络](https://thegraph.com/docs/en/supported-networks/)上找到。 API支持Ethereum 主机、 Binance Smart Chain、 Base 、 Arbitrum One 、 Optimism 和 Polygon/Matic 。 使用可选的 `net_id` 参数(如:`mainnet`、`bsc`、`base`、`arbitrum-one`、`optim`) 来针对特定的链。 没有此参数,API默认为Ethereum 主网。 +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### 为什么我只看到10个结果?我怎么能够获得更多的数据? -默认情况下,终点上限输出为10个项目。使用分页参数:`limit` (最多500个)和`page` (1-index)。 例如,设置`limit=50` 以获得50个结果,并为以后的批次增加`page` (例如项目51-100的`page=2`)。 +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### 如何获取较早的转账历史? From 542c4c21ecea0d6b1399d3504325530969db9bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:05 -0400 Subject: [PATCH 0308/1709] New translations faq.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ur/token-api/faq.mdx b/website/src/pages/ur/token-api/faq.mdx index 6178aee33e86..abb7d8ddf9cc 100644 --- a/website/src/pages/ur/token-api/faq.mdx +++ b/website/src/pages/ur/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From ad56eaed95589e5ac2f98061c84a896e009f818a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:06 -0400 Subject: [PATCH 0309/1709] New translations faq.mdx (Vietnamese) --- website/src/pages/vi/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/vi/token-api/faq.mdx b/website/src/pages/vi/token-api/faq.mdx index b2dcec14d671..3412c139b803 100644 --- a/website/src/pages/vi/token-api/faq.mdx +++ b/website/src/pages/vi/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 5345e01a3fd36ef47d43bf642deed1f68ade4caa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:07 -0400 Subject: [PATCH 0310/1709] New translations faq.mdx (Marathi) --- website/src/pages/mr/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/mr/token-api/faq.mdx b/website/src/pages/mr/token-api/faq.mdx index d7683aa77768..7aea56b5a147 100644 --- a/website/src/pages/mr/token-api/faq.mdx +++ b/website/src/pages/mr/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From 1730e83298214bd0f07ab5790c9aac72e81ba41d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 12:50:09 -0400 Subject: [PATCH 0311/1709] New translations faq.mdx (Hindi) --- website/src/pages/hi/token-api/faq.mdx | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/pages/hi/token-api/faq.mdx b/website/src/pages/hi/token-api/faq.mdx index 5d8d28b2e970..e87bf359b77f 100644 --- a/website/src/pages/hi/token-api/faq.mdx +++ b/website/src/pages/hi/token-api/faq.mdx @@ -8,19 +8,27 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ### What blockchains does the Token API support? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, and Arbitrum One. +Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. -### Why isn't my API key from The Graph Market working? +### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? -Be sure to use the Access Token generated from the API key, not the API key itself. An access token can be generated from the dashboard on The Graph Market using the dropdown menu next to each API key. +Authentication is managed via API tokens obtained through [The Graph Market](https://thegraph.market/). If you're experiencing issues, make sure you're using the API Token generated from the API key, not the API key itself. An API token can be found on The Graph Market dashboard next to each API key. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. ### How current is the data provided by the API relative to the blockchain? The API provides data up to the latest finalized block. -### How do I authenticate requests to the Token API? +### How do I retrieve token prices? -Authentication is managed via JWT tokens obtained through The Graph Market. JWT tokens issued by [Pinax](https://pinax.network/en), a core developer of The Graph, are also supported. +By default, token prices are returned with token-related responses, including token balances, token transfers, token metadata, and token holders. Historical prices are available with the Open-High-Low-Close (OHLC) endpoints. + +### Does the Token API support historical token data? + +The Token API supports historical token balances with the `/historical/balances/evm/{address}` endpoint. You can query historical price data by pool at `/ohlc/pools/evm/{pool}` and by contract at `/ohlc/prices/evm/{contract}`. + +### What exchanges does the Token API use for token prices? + +The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans to support additional exchanges in the future. ### Does the Token API provide a client SDK? @@ -36,7 +44,7 @@ Yes, improvements to provide data closer to the chain head are planned. Feedback ### Are there plans to support additional use cases such as NFTs? -The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases, including NFTs. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -60,17 +68,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. -### Are there rate limits or usage costs?\*\* +### Are there rate limits or usage costs? During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. -### What networks are supported, and how do I specify them? +### How do I specify a network? -You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). The API supports Ethereum mainnet, Binance Smart Chain, Base, Arbitrum One, Optimism, and Polygon/Matic. Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. +You can query available networks with [this link](https://token-api.thegraph.com/#tag/monitoring/GET/networks). A full list of the exact network IDs accepted by The Graph can be found on [The Graph's Networks](https://thegraph.com/docs/en/supported-networks/). Use the optional `network_id` parameter (e.g., `mainnet`, `bsc`, `base`, `arbitrum-one`, `optimism`, `matic`, `unichain`) to target a specific chain. Without this parameter, the API defaults to Ethereum mainnet. ### Why do I only see 10 results? How can I get more data? -Endpoints cap output at 10 items by default. Use pagination parameters: `limit` (up to 500) and `page` (1-indexed). For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). +Endpoints cap output at 10 items by default. Use pagination parameters: `limit` and `page` (1-indexed) to return more results. For example, set `limit=50` to get 50 results, and increment `page` for subsequent batches (e.g., `page=2` for items 51-100). ### How do I fetch older transfer history? From c1bfdde80bca960e33a0a2a731757e8cddaf5828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:52 -0400 Subject: [PATCH 0312/1709] New translations graphql-api.mdx (Romanian) --- .../src/pages/ro/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx index 6ff6a8777ce9..445413c1d969 100644 --- a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Description | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | Description | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From b996554af7aca2f8827c53c4a46e4c2a05019bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:53 -0400 Subject: [PATCH 0313/1709] New translations graphql-api.mdx (French) --- .../src/pages/fr/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx index 912598c2fd97..0e7fd084ee3d 100644 --- a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx @@ -349,12 +349,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbole | Opérateur | Description | | -| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Pour combiner plusieurs termes de recherche dans un filtre pour les entités incluant tous les termes fournis | | -| | | `Or` | Les requêtes comportant plusieurs termes de recherche séparés par l'opérateur ou renverront toutes les entités correspondant à l'un des termes fournis | -| `<->` | `Follow by` | Spécifiez la distance entre deux mots. | | -| `:*` | `Prefix` | Utilisez le terme de recherche de préfixe pour trouver les mots dont le préfixe correspond (2 caractères requis.) | | +| Symbole | Opérateur | Description | +| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Pour combiner plusieurs termes de recherche dans un filtre pour les entités incluant tous les termes fournis | +| `\|` | `Or` | Les requêtes comportant plusieurs termes de recherche séparés par l'opérateur ou renverront toutes les entités correspondant à l'un des termes fournis | +| `<->` | `Follow by` | Spécifiez la distance entre deux mots. | +| `:*` | `Prefix` | Utilisez le terme de recherche de préfixe pour trouver les mots dont le préfixe correspond (2 caractères requis.) | #### Full-text Query Examples From 0b82156660b18d5d110f1faf8d013d0ae5b97971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:54 -0400 Subject: [PATCH 0314/1709] New translations graphql-api.mdx (Spanish) --- .../src/pages/es/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/es/subgraphs/querying/graphql-api.mdx b/website/src/pages/es/subgraphs/querying/graphql-api.mdx index 2ef3b093f4fe..465a7503c0e6 100644 --- a/website/src/pages/es/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/es/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Símbolo | Operador | Descripción | | -| ------- | ----------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Para combinar varios términos de búsqueda en un filtro para entidades que incluyen todos los términos proporcionados | | -| | | `Or` | Las consultas con varios términos de búsqueda separados por o el operador devolverá todas las entidades que coincidan con cualquiera de los términos proporcionados | -| `<->` | `Follow by` | Especifica la distancia entre dos palabras. | | -| `:*` | `Prefix` | Utilice el término de búsqueda del prefijo para encontrar palabras cuyo prefijo coincida (se requieren 2 caracteres.) | | +| Símbolo | Operador | Descripción | +| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Para combinar varios términos de búsqueda en un filtro para entidades que incluyen todos los términos proporcionados | +| `\|` | `Or` | Las consultas con varios términos de búsqueda separados por o el operador devolverá todas las entidades que coincidan con cualquiera de los términos proporcionados | +| `<->` | `Follow by` | Especifica la distancia entre dos palabras. | +| `:*` | `Prefix` | Utilice el término de búsqueda del prefijo para encontrar palabras cuyo prefijo coincida (se requieren 2 caracteres.) | #### Full-text Query Examples From f06629f75b0c7518a9effe9e4fb0a168115f52fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:55 -0400 Subject: [PATCH 0315/1709] New translations graphql-api.mdx (Arabic) --- .../src/pages/ar/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx index 5f5a78a7e767..4b56dbd4e5ae 100644 --- a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| رمز | عامل التشغيل | الوصف | | -| ----- | ------------ | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | لدمج عبارات بحث متعددة في فلتر للكيانات التي تتضمن جميع العبارات المتوفرة | | -| | | `Or` | الاستعلامات التي تحتوي على عبارات بحث متعددة مفصولة بواسطة عامل التشغيل or ستعيد جميع الكيانات المتطابقة من أي عبارة متوفرة | -| `<->` | `Follow by` | يحدد المسافة بين كلمتين. | | -| `:*` | `Prefix` | يستخدم عبارة البحث prefix للعثور على الكلمات التي تتطابق بادئتها (مطلوب حرفان.) | | +| رمز | عامل التشغيل | الوصف | +| ----- | ------------ | --------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | لدمج عبارات بحث متعددة في فلتر للكيانات التي تتضمن جميع العبارات المتوفرة | +| `\|` | `Or` | الاستعلامات التي تحتوي على عبارات بحث متعددة مفصولة بواسطة عامل التشغيل or ستعيد جميع الكيانات المتطابقة من أي عبارة متوفرة | +| `<->` | `Follow by` | يحدد المسافة بين كلمتين. | +| `:*` | `Prefix` | يستخدم عبارة البحث prefix للعثور على الكلمات التي تتطابق بادئتها (مطلوب حرفان.) | #### Full-text Query Examples From c6c89adbc35434f72a64ad121e3b68d780b996e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:57 -0400 Subject: [PATCH 0316/1709] New translations graphql-api.mdx (Czech) --- .../src/pages/cs/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx index 6997047e6da4..23d72110f90e 100644 --- a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operátor | Popis | | -| ------ | ----------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Pro kombinaci více vyhledávacích výrazů do filtru pro entity, které obsahují všechny zadané výrazy | | -| | | `Or` | Dotazy s více hledanými výrazy oddělenými operátorem nebo vrátí všechny entity, které odpovídají některému z uvedených výrazů | -| `<->` | `Follow by` | Zadejte vzdálenost mezi dvěma slovy. | | -| `:*` | `Prefix` | Pomocí předponového výrazu vyhledejte slova, jejichž předpona se shoduje (vyžadovány 2 znaky) | | +| Symbol | Operátor | Popis | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Pro kombinaci více vyhledávacích výrazů do filtru pro entity, které obsahují všechny zadané výrazy | +| `\|` | `Or` | Dotazy s více hledanými výrazy oddělenými operátorem nebo vrátí všechny entity, které odpovídají některému z uvedených výrazů | +| `<->` | `Follow by` | Zadejte vzdálenost mezi dvěma slovy. | +| `:*` | `Prefix` | Pomocí předponového výrazu vyhledejte slova, jejichž předpona se shoduje (vyžadovány 2 znaky) | #### Full-text Query Examples From 849858a2416e208006616af30cc37cdc2ae5c485 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:58 -0400 Subject: [PATCH 0317/1709] New translations graphql-api.mdx (German) --- .../src/pages/de/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/de/subgraphs/querying/graphql-api.mdx b/website/src/pages/de/subgraphs/querying/graphql-api.mdx index 1fde91ddab9b..937deede72cd 100644 --- a/website/src/pages/de/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/de/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Beschreibung | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Zum Kombinieren mehrerer Suchbegriffe zu einem Filter für Entitäten, die alle bereitgestellten Begriffe enthalten | | -| | | `Or` | Abfragen mit mehreren durch den Operator or getrennten Suchbegriffen geben alle Entitäten mit einer Übereinstimmung mit einem der bereitgestellten Begriffe zurück | -| `<->` | `Follow by` | Geben Sie den Abstand zwischen zwei Wörtern an. | | -| `:*` | `Prefix` | Verwenden Sie den Präfix-Suchbegriff, um Wörter zu finden, deren Präfix übereinstimmt (2 Zeichen erforderlich) | | +| Symbol | Operator | Beschreibung | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Zum Kombinieren mehrerer Suchbegriffe zu einem Filter für Entitäten, die alle bereitgestellten Begriffe enthalten | +| `\|` | `Or` | Abfragen mit mehreren durch den Operator or getrennten Suchbegriffen geben alle Entitäten mit einer Übereinstimmung mit einem der bereitgestellten Begriffe zurück | +| `<->` | `Follow by` | Geben Sie den Abstand zwischen zwei Wörtern an. | +| `:*` | `Prefix` | Verwenden Sie den Präfix-Suchbegriff, um Wörter zu finden, deren Präfix übereinstimmt (2 Zeichen erforderlich) | #### Full-text Query Examples From d0e69adb727f03f6eeccb75b69788c4420732137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:56:59 -0400 Subject: [PATCH 0318/1709] New translations graphql-api.mdx (Italian) --- .../src/pages/it/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/it/subgraphs/querying/graphql-api.mdx b/website/src/pages/it/subgraphs/querying/graphql-api.mdx index e4ddad384d6d..f8856cae7dbb 100644 --- a/website/src/pages/it/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/it/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Simbolo | Operatore | Descrizione | | -| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Per combinare più termini di ricerca in un filtro per le entità che includono tutti i termini forniti | | -| | | `Or` | Le query con più termini di ricerca separati dall'operatore Or restituiranno tutte le entità con una corrispondenza tra i termini forniti | -| `<->` | `Follow by` | Specifica la distanza tra due parole. | | -| `:*` | `Prefix` | Utilizzare il termine di ricerca del prefisso per trovare le parole il cui prefisso corrisponde (sono richiesti 2 caratteri.) | | +| Simbolo | Operatore | Descrizione | +| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Per combinare più termini di ricerca in un filtro per le entità che includono tutti i termini forniti | +| `\|` | `Or` | Le query con più termini di ricerca separati dall'operatore Or restituiranno tutte le entità con una corrispondenza tra i termini forniti | +| `<->` | `Follow by` | Specifica la distanza tra due parole. | +| `:*` | `Prefix` | Utilizzare il termine di ricerca del prefisso per trovare le parole il cui prefisso corrisponde (sono richiesti 2 caratteri.) | #### Full-text Query Examples From 7b3b40e9c236a2dd3e7ff1144bf2fa1d68dca44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:00 -0400 Subject: [PATCH 0319/1709] New translations graphql-api.mdx (Japanese) --- .../src/pages/ja/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx index 19581d236459..9ac6aaa75c83 100644 --- a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| シンボル | オペレーター | 説明書き | | -| ----- | ----------- | ---------------------------------------------- | --------------------------------------------------------- | -| `&` | `And` | 複数の検索語を組み合わせて、指定したすべての検索語を含むエンティティをフィルタリングします。 | | -| | | `Or` | 複数の検索語をオペレーターで区切って検索すると、指定した語のいずれかにマッチするすべてのエンティティが返されます。 | -| `<->` | `Follow by` | 2 つの単語の間の距離を指定します。 | | -| `:*` | `Prefix` | プレフィックス検索語を使って、プレフィックスが一致する単語を検索します(2 文字必要) | | +| シンボル | オペレーター | 説明書き | +| ----- | ----------- | --------------------------------------------------------- | +| `&` | `And` | 複数の検索語を組み合わせて、指定したすべての検索語を含むエンティティをフィルタリングします。 | +| `\|` | `Or` | 複数の検索語をオペレーターで区切って検索すると、指定した語のいずれかにマッチするすべてのエンティティが返されます。 | +| `<->` | `Follow by` | 2 つの単語の間の距離を指定します。 | +| `:*` | `Prefix` | プレフィックス検索語を使って、プレフィックスが一致する単語を検索します(2 文字必要) | #### Full-text Query Examples From 4b91e064dc45fc4a06f980225ab5ed969b839c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:02 -0400 Subject: [PATCH 0320/1709] New translations graphql-api.mdx (Korean) --- .../src/pages/ko/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx index 6ff6a8777ce9..445413c1d969 100644 --- a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Description | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | Description | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From 7c5aaccf08cb4dad20d24df4672b4638b7b17d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:03 -0400 Subject: [PATCH 0321/1709] New translations graphql-api.mdx (Dutch) --- .../src/pages/nl/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx index 6ff6a8777ce9..445413c1d969 100644 --- a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Description | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | Description | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From 43806cdcf35fa8ade484d20bc0f8b93e2afdfbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:04 -0400 Subject: [PATCH 0322/1709] New translations graphql-api.mdx (Polish) --- .../src/pages/pl/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx index 6ff6a8777ce9..445413c1d969 100644 --- a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Description | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | Description | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From 918178163b01acd6f53ebb7f0269fad907e1a660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:05 -0400 Subject: [PATCH 0323/1709] New translations graphql-api.mdx (Portuguese) --- .../src/pages/pt/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx index 1432f41e790d..fbc3a86b5b33 100644 --- a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Símbolo | Operador | Descrição | | -| ------- | ----------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Para combinar múltiplos termos de busca num filtro para entidades que incluem todos os termos fornecidos | | -| | | `Or` | Consultas com vários termos de busca separados pelo operador or retornarão todas as entidades com uma correspondência de qualquer termo providenciado | -| `<->` | `Follow by` | Especifica a distância entre duas palavras. | | -| `:*` | `Prefix` | Use o prefixo para encontrar palavras que correspondem a tal prefixo (2 caracteres necessários.) | | +| Símbolo | Operador | Descrição | +| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Para combinar múltiplos termos de busca num filtro para entidades que incluem todos os termos fornecidos | +| `\|` | `Or` | Consultas com vários termos de busca separados pelo operador or retornarão todas as entidades com uma correspondência de qualquer termo providenciado | +| `<->` | `Follow by` | Especifica a distância entre duas palavras. | +| `:*` | `Prefix` | Use o prefixo para encontrar palavras que correspondem a tal prefixo (2 caracteres necessários.) | #### Full-text Query Examples From 554b94d39fcc41b067df05e536ee1b06238cc5ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:07 -0400 Subject: [PATCH 0324/1709] New translations graphql-api.mdx (Russian) --- .../src/pages/ru/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx index e9880cd1b395..8f8c58dafc82 100644 --- a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Символ | Оператор | Описание | | -| ------ | ----------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Для объединения нескольких условий поиска в фильтр для объектов, которые включают все указанные условия | | -| | | `Or` | Запросы с несколькими условиями поиска, разделенные оператором or, вернут все объекты, которые соответствуют любому из предоставленных условий | -| `<->` | `Follow by` | Укажите расстояние между двумя словами. | | -| `:*` | `Prefix` | Используйте поисковый запрос по префиксу, чтобы найти слова с соответствующим префиксом (необходимо 2 символа) | | +| Символ | Оператор | Описание | +| ------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Для объединения нескольких условий поиска в фильтр для объектов, которые включают все указанные условия | +| `\|` | `Or` | Запросы с несколькими условиями поиска, разделенные оператором or, вернут все объекты, которые соответствуют любому из предоставленных условий | +| `<->` | `Follow by` | Укажите расстояние между двумя словами. | +| `:*` | `Prefix` | Используйте поисковый запрос по префиксу, чтобы найти слова с соответствующим префиксом (необходимо 2 символа) | #### Full-text Query Examples From 99d6deec11107195d09c8a90a031aadf821c6e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:08 -0400 Subject: [PATCH 0325/1709] New translations graphql-api.mdx (Swedish) --- .../src/pages/sv/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx index 72d0f0e3eb59..8ec046088491 100644 --- a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operatör | Beskrivning | | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | För att kombinera flera söktermer till ett filter för entiteter som inkluderar alla de angivna termerna | | -| | | `Or` | Förfrågningar med flera söktermer separerade av ellipsen kommer att returnera alla entiteter med en matchning från någon av de angivna termerna | -| `<->` | `Follow by` | Ange avståndet mellan två ord. | | -| `:*` | `Prefix` | Använd prefixsöktermen för att hitta ord vars prefix matchar (2 tecken krävs.) | | +| Symbol | Operatör | Beskrivning | +| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | För att kombinera flera söktermer till ett filter för entiteter som inkluderar alla de angivna termerna | +| `\|` | `Or` | Förfrågningar med flera söktermer separerade av ellipsen kommer att returnera alla entiteter med en matchning från någon av de angivna termerna | +| `<->` | `Follow by` | Ange avståndet mellan två ord. | +| `:*` | `Prefix` | Använd prefixsöktermen för att hitta ord vars prefix matchar (2 tecken krävs.) | #### Full-text Query Examples From 41c7d686fb50fbbeda85a6e60ccbccaae3e03716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:09 -0400 Subject: [PATCH 0326/1709] New translations graphql-api.mdx (Turkish) --- .../src/pages/tr/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx index faafcbbe1af9..dfa6bf5a358c 100644 --- a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Sembol | Operatör | Tanım | | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Sağlanan tüm arama terimlerini içeren varlıkları filtrelemek için birden fazla arama terimini birleştirir | | -| | | `Or` | Or (veya) operatörüyle ayrılmış birden fazla arama terimi içeren sorgular, sağlanan terimlerden herhangi biriyle eşleşen tüm varlıkları döndürür | -| `<->` | `Follow by` | İki kelime arasındaki mesafeyi belirtmeyi sağlar. | | -| `:*` | `Prefix` | Ön eki (Prefix'i) eşleşen kelimeleri bulmak için ön ek arama terimini kullanın (en az 2 karakter gereklidir). | | +| Sembol | Operatör | Tanım | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | Sağlanan tüm arama terimlerini içeren varlıkları filtrelemek için birden fazla arama terimini birleştirir | +| `\|` | `Or` | Or (veya) operatörüyle ayrılmış birden fazla arama terimi içeren sorgular, sağlanan terimlerden herhangi biriyle eşleşen tüm varlıkları döndürür | +| `<->` | `Follow by` | İki kelime arasındaki mesafeyi belirtmeyi sağlar. | +| `:*` | `Prefix` | Ön eki (Prefix'i) eşleşen kelimeleri bulmak için ön ek arama terimini kullanın (en az 2 karakter gereklidir). | #### Full-text Query Examples From 03970a7bfe14c16243e128807b2092419942bbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:11 -0400 Subject: [PATCH 0327/1709] New translations graphql-api.mdx (Ukrainian) --- .../src/pages/uk/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx index 6ff6a8777ce9..445413c1d969 100644 --- a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | Description | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | Description | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From efc56b722a570e3f3db674895f9c31a5e17cf736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:12 -0400 Subject: [PATCH 0328/1709] New translations graphql-api.mdx (Chinese Simplified) --- .../src/pages/zh/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx index caa006a14d9e..6ed71be5d250 100644 --- a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| 符号 | 运算符 | 描述 | | -| ----- | ----------- | --------------------------- | ------------------------------------- | -| `&` | `And` | 用于将多个搜索词组合到包含所有提供词条的实体的过滤器中 | | -| | | `Or` | 由 or 运算符分隔的多个搜索词的查询,将返回与任何提供的词匹配的所有实体 | -| `<->` | `Follow by` | 指定两个单词之间的距离。 | | -| `:*` | `Prefix` | 使用前缀搜索词查找前缀匹配的单词(需要 2 个字符) | | +| 符号 | 运算符 | 描述 | +| ----- | ----------- | ------------------------------------- | +| `&` | `And` | 用于将多个搜索词组合到包含所有提供词条的实体的过滤器中 | +| `\|` | `Or` | 由 or 运算符分隔的多个搜索词的查询,将返回与任何提供的词匹配的所有实体 | +| `<->` | `Follow by` | 指定两个单词之间的距离。 | +| `:*` | `Prefix` | 使用前缀搜索词查找前缀匹配的单词(需要 2 个字符) | #### Full-text Query Examples From cbc78d9012f67a7cd06e4f0dc8a82bdc0e6e0a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:14 -0400 Subject: [PATCH 0329/1709] New translations graphql-api.mdx (Urdu (Pakistan)) --- .../src/pages/ur/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx index 9f9117c00b19..225b6da6dfb5 100644 --- a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| علامت | آپریٹر | تفصیل | | -| ----- | ----------- | ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | ایک سے زیادہ تلاش کی اصطلاحات کو ایک فلٹر میں یکجا کرنے کے لیے ان ہستیوں کے لیے جس میں فراہم کردہ تمام اصطلاحات شامل ہوں | | -| | | `Or` | Or آپریٹر کے ذریعہ الگ کردہ متعدد تلاش کی اصطلاحات کے ساتھ کیوریز فراہم کردہ شرائط میں سے کسی سے بھی مماثلت کے ساتھ تمام ہستیوں کو واپس کریں گے | -| `<->` | `Follow by` | دو الفاظ کے درمیان فاصلہ بتائیں. | | -| `:*` | `Prefix` | ایسے الفاظ تلاش کرنے کے لیے پریفکس ​​تلاش کی اصطلاح استعمال کریں جن کا سابقہ ​​مماثل ہو (۲ حروف درکار ہیں.) | | +| علامت | آپریٹر | تفصیل | +| ----- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | ایک سے زیادہ تلاش کی اصطلاحات کو ایک فلٹر میں یکجا کرنے کے لیے ان ہستیوں کے لیے جس میں فراہم کردہ تمام اصطلاحات شامل ہوں | +| `\|` | `Or` | Or آپریٹر کے ذریعہ الگ کردہ متعدد تلاش کی اصطلاحات کے ساتھ کیوریز فراہم کردہ شرائط میں سے کسی سے بھی مماثلت کے ساتھ تمام ہستیوں کو واپس کریں گے | +| `<->` | `Follow by` | دو الفاظ کے درمیان فاصلہ بتائیں. | +| `:*` | `Prefix` | ایسے الفاظ تلاش کرنے کے لیے پریفکس ​​تلاش کی اصطلاح استعمال کریں جن کا سابقہ ​​مماثل ہو (۲ حروف درکار ہیں.) | #### Full-text Query Examples From 9220246e37f0101857d7ba71e18f0ab0e54262fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:15 -0400 Subject: [PATCH 0330/1709] New translations graphql-api.mdx (Vietnamese) --- .../src/pages/vi/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx index 0b7fc21754b0..fc862800d2f6 100644 --- a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Biểu tượng | Toán tử | Miêu tả | | -| ---------- | ----------- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Để kết hợp nhiều cụm từ tìm kiếm thành một bộ lọc cho các thực thể bao gồm tất cả các cụm từ được cung cấp | | -| | | `Or` | Các truy vấn có nhiều cụm từ tìm kiếm được phân tách bằng toán tử hoặc sẽ trả về tất cả các thực thể có kết quả khớp với bất kỳ cụm từ nào được cung cấp | -| `<->` | `Follow by` | Chỉ định khoảng cách giữa hai từ. | | -| `:*` | `Prefix` | Sử dụng cụm từ tìm kiếm tiền tố để tìm các từ có tiền tố khớp với nhau (yêu cầu 2 ký tự.) | | +| Biểu tượng | Toán tử | Miêu tả | +| ---------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `&` | `And` | Để kết hợp nhiều cụm từ tìm kiếm thành một bộ lọc cho các thực thể bao gồm tất cả các cụm từ được cung cấp | +| `\|` | `Or` | Các truy vấn có nhiều cụm từ tìm kiếm được phân tách bằng toán tử hoặc sẽ trả về tất cả các thực thể có kết quả khớp với bất kỳ cụm từ nào được cung cấp | +| `<->` | `Follow by` | Chỉ định khoảng cách giữa hai từ. | +| `:*` | `Prefix` | Sử dụng cụm từ tìm kiếm tiền tố để tìm các từ có tiền tố khớp với nhau (yêu cầu 2 ký tự.) | #### Full-text Query Examples From f26b4567a24f762dab1f13f677a31821c3937142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:16 -0400 Subject: [PATCH 0331/1709] New translations graphql-api.mdx (Marathi) --- .../src/pages/mr/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx index fb8c43d4fc0c..f2b5e8cbc5f1 100644 --- a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| Symbol | Operator | वर्णन | | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | | -| | | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | | +| Symbol | Operator | वर्णन | +| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | +| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | +| `<->` | `Follow by` | Specify the distance between two words. | +| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | #### Full-text Query Examples From bbb7482878c431d19aa7fcdf058c97131e492de3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 16:57:17 -0400 Subject: [PATCH 0332/1709] New translations graphql-api.mdx (Hindi) --- .../src/pages/hi/subgraphs/querying/graphql-api.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx index 761e645fc479..f67ef3d7e0eb 100644 --- a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx @@ -347,12 +347,12 @@ Full-text search queries have one required field, `text`, for supplying search t Full-text search operators: -| प्रतीक | ऑपरेटर | Description | | -| ------ | ---------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | सभी प्रदान किए गए शब्दों को शामिल करने वाली संस्थाओं के लिए एक से अधिक खोज शब्दों को फ़िल्टर में संयोजित करने के लिए | | -| | | ' Or' | या ऑपरेटर द्वारा अलग किए गए एकाधिक खोज शब्दों वाली क्वेरी सभी संस्थाओं को प्रदान की गई शर्तों में से किसी से मेल के साथ वापस कर देगी | -| `<->` | ' द्वारा अनुसरण करें ' | दो शब्दों के बीच की दूरी निर्दिष्ट करें। | | -| `:*` | ' उपसर्ग ' | उन शब्दों को खोजने के लिए उपसर्ग खोज शब्द का उपयोग करें जिनके उपसर्ग मेल खाते हैं (2 वर्ण आवश्यक हैं।) | | +| प्रतीक | ऑपरेटर | Description | +| ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `&` | `And` | सभी प्रदान किए गए शब्दों को शामिल करने वाली संस्थाओं के लिए एक से अधिक खोज शब्दों को फ़िल्टर में संयोजित करने के लिए | +| `\|` | ' Or' | या ऑपरेटर द्वारा अलग किए गए एकाधिक खोज शब्दों वाली क्वेरी सभी संस्थाओं को प्रदान की गई शर्तों में से किसी से मेल के साथ वापस कर देगी | +| `<->` | ' द्वारा अनुसरण करें ' | दो शब्दों के बीच की दूरी निर्दिष्ट करें। | +| `:*` | ' उपसर्ग ' | उन शब्दों को खोजने के लिए उपसर्ग खोज शब्द का उपयोग करें जिनके उपसर्ग मेल खाते हैं (2 वर्ण आवश्यक हैं।) | #### Full-text Query Examples From bde959ad7ed7cedc0f00f75faf4870beed6124b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:00 -0400 Subject: [PATCH 0333/1709] New translations starting-your-subgraph.mdx (Romanian) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/ro/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ro/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/ro/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ro/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From f5decd4011792c81279b385e310550a5240563f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:03 -0400 Subject: [PATCH 0334/1709] New translations new-chain-integration.mdx (Romanian) --- website/src/pages/ro/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/indexing/new-chain-integration.mdx b/website/src/pages/ro/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/ro/indexing/new-chain-integration.mdx +++ b/website/src/pages/ro/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 9caa23920d6dd8c1ef59ea86c5ae62db078651c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:05 -0400 Subject: [PATCH 0335/1709] New translations _meta-titles.json (Romanian) --- website/src/pages/ro/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/substreams/_meta-titles.json b/website/src/pages/ro/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/ro/substreams/_meta-titles.json +++ b/website/src/pages/ro/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From d3ac41157b11b009987b89dc7fe69aadfdeb4058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:06 -0400 Subject: [PATCH 0336/1709] New translations faq.mdx (Romanian) --- website/src/pages/ro/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/ro/substreams/sps/faq.mdx diff --git a/website/src/pages/ro/substreams/sps/faq.mdx b/website/src/pages/ro/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/ro/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 08d24bef1b6ed5dae3da2bf6d2152872c9a7c7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:07 -0400 Subject: [PATCH 0337/1709] New translations introduction.mdx (Romanian) --- .../pages/ro/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ro/substreams/sps/introduction.mdx diff --git a/website/src/pages/ro/substreams/sps/introduction.mdx b/website/src/pages/ro/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..92d8618165dd --- /dev/null +++ b/website/src/pages/ro/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduction +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Overview + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 479a074351b3c4426258cf35eb11eb2d11c815b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:08 -0400 Subject: [PATCH 0338/1709] New translations triggers.mdx (Romanian) --- .../src/pages/ro/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ro/substreams/sps/triggers.mdx diff --git a/website/src/pages/ro/substreams/sps/triggers.mdx b/website/src/pages/ro/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..66687aa21889 --- /dev/null +++ b/website/src/pages/ro/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Overview + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From b2c717aa5e619f9cb6cea2c14ac1ec1ef39939f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:10 -0400 Subject: [PATCH 0339/1709] New translations tutorial.mdx (Romanian) --- .../src/pages/ro/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/ro/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ro/substreams/sps/tutorial.mdx b/website/src/pages/ro/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..e20a22ba4b1c --- /dev/null +++ b/website/src/pages/ro/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Get Started + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 2463e562c68cabaed3437692497285c0e33128a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:11 -0400 Subject: [PATCH 0340/1709] New translations starting-your-subgraph.mdx (French) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/fr/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/fr/subgraphs/developing/creating/starting-your-subgraph.mdx index 247c5e721c94..2e161787acff 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/fr/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Commencez le processus et construisez un subgraph qui correspond à vos besoins Explorez d'autres [ressources pour les API](/subgraphs/developing/creating/graph-ts/README/) et effectuez des tests en local avec [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Notes de version | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supporte la fonctionnalité [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) pour élaguer les subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Notes de version | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supporte la fonctionnalité [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) pour élaguer les subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From ab2dc1b4c69e1583858a310e5bd8534c87736555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:13 -0400 Subject: [PATCH 0341/1709] New translations unit-testing-framework.mdx (French) --- .../subgraphs/developing/creating/unit-testing-framework.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/subgraphs/developing/creating/unit-testing-framework.mdx b/website/src/pages/fr/subgraphs/developing/creating/unit-testing-framework.mdx index 61b209325211..44f1d8adb180 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/unit-testing-framework.mdx +++ b/website/src/pages/fr/subgraphs/developing/creating/unit-testing-framework.mdx @@ -1216,8 +1216,8 @@ type TokenLockMetadata @entity { ##### Exemple de gestionnaire ```typescript -export function handleMetadata(content: Bytes): void { - // dataSource.stringParams() renvoie le CID du fichier de la source de données +export function handleMetadata(content : Bytes) : void { + // dataSource.stringParams() renvoie le CID du fichier de la source de données // stringParam() sera simulé dans le test du gestionnaire // pour plus d'informations https://thegraph.com/docs/en/developing/creating-a-subgraph/#create-a-new-handler-to-process-files let tokenMetadata = new TokenLockMetadata(dataSource.stringParam()) From aca6f7c4c7c13732a4f9e1462c3a05d41427b891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:14 -0400 Subject: [PATCH 0342/1709] New translations new-chain-integration.mdx (French) --- website/src/pages/fr/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/indexing/new-chain-integration.mdx b/website/src/pages/fr/indexing/new-chain-integration.mdx index ab70ce6efb3a..20c9e5710b6a 100644 --- a/website/src/pages/fr/indexing/new-chain-integration.mdx +++ b/website/src/pages/fr/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ Afin que Graph Node puisse ingérer des données provenant d'une chaîne EVM, le - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(traçage limité et optionnellement requis pour Graph Node)* +- `trace_filter` _(traçage limité et optionnellement requis pour Graph Node)_ ### 2. Intégration Firehose From a09089321727f8430bb5965b2c4cadefe68b608b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:16 -0400 Subject: [PATCH 0343/1709] New translations _meta-titles.json (French) --- website/src/pages/fr/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/substreams/_meta-titles.json b/website/src/pages/fr/substreams/_meta-titles.json index bd6a51423076..1f11f4426932 100644 --- a/website/src/pages/fr/substreams/_meta-titles.json +++ b/website/src/pages/fr/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Développement" + "developing": "Développement", + "sps": "Subgraphs alimentés par des substreams" } From d111aad8fe34d290ee3fadbae053b6e45cc2ad77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:17 -0400 Subject: [PATCH 0344/1709] New translations faq.mdx (French) --- website/src/pages/fr/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/fr/substreams/sps/faq.mdx diff --git a/website/src/pages/fr/substreams/sps/faq.mdx b/website/src/pages/fr/substreams/sps/faq.mdx new file mode 100644 index 000000000000..9519360ba265 --- /dev/null +++ b/website/src/pages/fr/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: FAQ sur les Subgraphs alimentés par Substreams +sidebarTitle: FAQ +--- + +## Que sont les sous-flux ? + +Substreams est un moteur de traitement exceptionnellement puissant capable de consommer de riches flux de données blockchain. Il vous permet d'affiner et de façonner les données de la blockchain pour une digestion rapide et transparente par les applications des utilisateurs finaux. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams est développé par [StreamingFast](https://www.streamingfast.io/). Visitez la [Documentation Substreams](/substreams/introduction/) pour en savoir plus sur Substreams. + +## Qu'est-ce qu'un subgraph alimenté par Substreams ? + +Les [subgraphs alimentés par Substreams](/sps/introduction/) combinent la puissance de Substreams avec la capacité d'interrogation des subgraphs. Lors de la publication d'un subgraph alimenté par Substreams, les données produites par les transformations Substreams peuvent [produire des changements d'entité](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) compatibles avec les entités du subgraph. + +Si vous êtes déjà familiarisé avec le développement de subgraphs, notez que les subgraphs alimentés par Substreams peuvent être interrogés comme s'ils avaient été produits par la couche de transformation AssemblyScript. Cela permet de bénéficier de tous les avantages des subgraphs, y compris d'une API GraphQL dynamique et flexible. + +## En quoi les Subgraphs alimentés par Substreams se distinguent-ils des Subgraphs ? + +Les subgraphs sont constitués de sources de données qui spécifient des événements onchain et comment ces événements doivent être transformés via des gestionnaires écrits en Assemblyscript. Ces événements sont traités de manière séquentielle, en fonction de l'ordre dans lequel ils se produisent onchain. + +En revanche, les subgraphs alimentés par Substreams ont une source de données unique qui fait référence à un package substream, qui est traité par le Graph Node. Les subgraphs ont accès à des données granulaires supplémentaires onchain par rapport aux subgraphs conventionnels et peuvent également bénéficier d'un traitement massivement parallélisé, ce qui peut se traduire par des temps de traitement beaucoup plus rapides. + +## Quels sont les avantages de l'utilisation des subgraphs alimentés par Substreams ? + +Les subgraphs alimentés par Substreams combinent tous les avantages de Substreams avec la capacité d'interrogation des subgraphs. Ils apportent à The Graph une plus grande composabilité et une indexation très performante. Ils permettent également de nouveaux cas d'utilisation des données ; par exemple, une fois que vous avez construit votre subgraph alimenté par Substreams, vous pouvez réutiliser vos [modules Substreams](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) pour sortir vers différents [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) tels que PostgreSQL, MongoDB et Kafka. + +## Quels sont les avantages de Substreams ? + +L'utilisation de Substreams présente de nombreux avantages, notamment: + +- Composable : Vous pouvez empiler les modules Substreams comme des blocs LEGO et construire des modules communautaires pour affiner les données publiques. + +- Indexation haute performance : Indexation plus rapide d'un ordre de grandeur grâce à des grappes d'opérations parallèles à grande échelle (comme BigQuery). + +- "Sinkez" n'importe où : "Sinkez" vos données où vous le souhaitez : PostgreSQL, MongoDB, Kafka, Subgraphs, fichiers plats, Google Sheets. + +- Programmable : Utilisez du code pour personnaliser l'extraction, effectuer des agrégations au moment de la transformation et modéliser vos résultats pour plusieurs puits. + +- Accès à des données supplémentaires qui ne sont pas disponibles dans le cadre de la RPC JSON + +- Tous les avantages du Firehose. + +## Tous les avantages du Firehose? + +Développé par [StreamingFast] (https://www.streamingfast.io/), le Firehose est une couche d'extraction de données de blockchain conçue à partir de zéro pour traiter l'historique complet des blockchains à des vitesses jusqu'alors inconnues . Obtenez une approche basée sur les fichiers et le streaming, il s'agit d'un composant essentiel de la suite de technologies open-source de StreamingFast et de la base de Substreams. + +Consultez la [documentation] (https://firehose.streamingfast.io/) pour en savoir plus sur le Firehose. + +## Quels sont les avantages du Firehose ? + +L'utilisation de Firehose présente de nombreux avantages, notamment: + +- Temps de latence le plus faible et pas d'interrogation : Les nœuds Firehose sont conçus pour faire la course afin de diffuser les données en bloc en premier, selon le principe "streaming-first". + +- Prévient les temps d'arrêt : Conçu dès le départ pour une haute disponibilité. + +- Ne manquez jamais le rythme : Le curseur du flux Firehose est conçu pour gérer les bifurcations et pour reprendre là où vous vous êtes arrêté dans n'importe quelle condition. + +- Modèle de données le plus riche :   Meilleur modèle de données qui inclut les changements de solde, l'arbre d'appel complet, les transactions internes, les journaux, les changements de stockage, les coûts du gaz, etc. + +- Exploite les fichiers plats : Les données de la blockchain sont extraites dans des fichiers plats, la ressource informatique la moins chère et la plus optimisée disponible. + +## Où les développeurs peuvent-ils trouver plus d'informations sur les Substreams et les Subgraphs alimentés par Substreams ? + +La [documentation Substreams ](/substreams/introduction/) vous explique comment construire des modules Substreams. + +La [documentation sur les subgraphs alimentés par Substreams](/sps/introduction/) vous montrera comment les packager pour les déployer sur The Graph. + +Le [dernier outil Substreams Codegen ](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) vous permettra de lancer un projet Substreams sans aucun code. + +## Quel est le rôle des modules Rust dans Substreams ? + +Les modules Rust sont l'équivalent des mappeurs AssemblyScript dans Subgraphs. Ils sont compilés dans WASM de la même manière, mais le modèle de programmation permet une exécution parallèle. Ils définissent le type de transformations et d'agrégations que vous souhaitez appliquer aux données brutes de la blockchain. + +Consultez la [documentation des modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) pour plus de détails. + +## Qu'est-ce qui rend Substreams composable ? + +Lors de l'utilisation de Substreams, la composition a lieu au niveau de la couche de transformation, ce qui permet de réutiliser les modules mis en cache. + +Par exemple, Alice peut créer un module de prix DEX, Bob peut l'utiliser pour créer un agrégateur de volume pour certains jetons qui l'intéressent, et Lisa peut combiner quatre modules de prix DEX individuels pour créer un oracle de prix. Une seule requête Substreams regroupera tous ces modules individuels, les reliera entre eux, pour offrir un flux de données beaucoup plus raffiné. Ce flux peut ensuite être utilisé pour alimenter un subgraph et être interrogé par les consommateurs. + +## Comment pouvez-vous créer et déployer un Subgraph basé sur Substreams ? + +Après avoir [défini](/sps/introduction/) un subgraph basé sur Substreams, vous pouvez utiliser Graph CLI pour le déployer dans [Subgraph Studio](https://thegraph.com/studio/). + +## Où puis-je trouver des exemples de Substreams et de Subgraphs alimentés par Substreams ? + +Vous pouvez consulter [cette repo Github](https://github.com/pinax-network/awesome-substreams) pour trouver des exemples de Substreams et de subgraphs alimentés par Substreams. + +## Que signifient les Substreams et les subgraphs alimentés par Substreams pour The Gaph Network ? + +L'intégration promet de nombreux avantages, notamment une indexation extrêmement performante et une plus grande composabilité grâce à l'exploitation des modules de la communauté et à leur développement. From f901fde8a4c8dfdd2ab1a1f47797ec6c5c490d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:19 -0400 Subject: [PATCH 0345/1709] New translations introduction.mdx (French) --- .../pages/fr/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/fr/substreams/sps/introduction.mdx diff --git a/website/src/pages/fr/substreams/sps/introduction.mdx b/website/src/pages/fr/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..0454b6f4acee --- /dev/null +++ b/website/src/pages/fr/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction aux Subgraphs alimentés par Substreams +sidebarTitle: Présentation +--- + +Améliorez l'efficacité et l'évolutivité de votre subgraph en utilisant [Substreams](/substreams/introduction/) pour streamer des données blockchain pré-indexées. + +## Aperçu + +Utilisez un package Substreams (`.spkg`) comme source de données pour donner à votre Subgraph l'accès à un flux de données blockchain pré-indexées. Cela permet un traitement des données plus efficace et évolutif, en particulier avec des réseaux de blockchain complexes ou de grande taille. + +### Spécificités⁠ + +Il existe deux méthodes pour activer cette technologie : + +1. **Utilisation des [déclencheurs](/sps/triggers/) de Substreams ** : Consommez à partir de n'importe quel module Substreams en important le modèle Protobuf par le biais d'un gestionnaire de subgraph et déplacez toute votre logique dans un subgraph. Cette méthode crée les entités du subgraph directement dans le subgraph. + +2. **En utilisant [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)** : En écrivant une plus grande partie de la logique dans Substreams, vous pouvez consommer la sortie du module directement dans [graph-node](/indexing/tooling/graph-node/). Dans graph-node, vous pouvez utiliser les données de Substreams pour créer vos entités Subgraph. + +Vous pouvez choisir où placer votre logique, soit dans le subgraph, soit dans Substreams. Cependant, réfléchissez à ce qui correspond à vos besoins en matière de données, car Substreams a un modèle parallélisé et les déclencheurs sont consommés de manière linéaire dans graph node. + +### Ressources supplémentaires + +Consultez les liens suivants pour obtenir des tutoriels sur l'utilisation de l'outil de génération de code afin de créer rapidement votre premier projet Substreams de bout en bout : + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 229b37813a50b4df77a488418d677946323978a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:20 -0400 Subject: [PATCH 0346/1709] New translations triggers.mdx (French) --- .../src/pages/fr/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/fr/substreams/sps/triggers.mdx diff --git a/website/src/pages/fr/substreams/sps/triggers.mdx b/website/src/pages/fr/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..ecd1253f24c7 --- /dev/null +++ b/website/src/pages/fr/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Déclencheurs de Substreams +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Aperçu + +Les déclencheurs personnalisés vous permettent d'envoyer des données directement dans votre fichier de mappage de subgraph et dans vos entités, qui sont similaires aux tables et aux champs. Cela vous permet d'utiliser pleinement la couche GraphQL. + +En important les définitions Protobuf émises par votre module Substreams, vous pouvez recevoir et traiter ces données dans le gestionnaire de votre subgraph. Cela garantit une gestion efficace et rationalisée des données dans le cadre du Subgraph. + +### Définition de `handleTransactions` + +Le code suivant montre comment définir une fonction `handleTransactions` dans un gestionnaire de Subgraph. Cette fonction reçoit comme paramètre de Substreams des Bytes bruts et les décode en un objet `Transactions`. Pour chaque transaction, une nouvelle entité Subgraph est créée. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Voici ce que vous voyez dans le fichier `mappings.ts` : + +1. Les bytes contenant les données Substreams sont décodés en un objet `Transactions` généré, qui est utilisé comme n’importe quel autre objet AssemblyScript +2. Boucle sur les transactions +3. Créer une nouvelle entité de subgraph pour chaque transaction + +Pour découvrir un exemple détaillé de subgraph à déclencheurs, [consultez le tutoriel](/sps/tutorial/). + +### Ressources supplémentaires + +Pour élaborer votre premier projet dans le conteneur de développement, consultez l'un des [guides pratiques](/substreams/developing/dev-container/). From cad738165f5d24942953a85bdf86863185f67e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:21 -0400 Subject: [PATCH 0347/1709] New translations tutorial.mdx (French) --- .../src/pages/fr/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/fr/substreams/sps/tutorial.mdx diff --git a/website/src/pages/fr/substreams/sps/tutorial.mdx b/website/src/pages/fr/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..71659989b6e8 --- /dev/null +++ b/website/src/pages/fr/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutoriel : Configurer un Subgraph alimenté par Substreams sur Solana" +sidebarTitle: Tutoriel +--- + +Mise en place réussie d'un subgraph alimenté par Substreams basé sur des déclencheurs pour un jeton Solana SPL. + +## Commencer + +Pour un tutoriel vidéo, consultez [Comment indexer Solana avec un subgraph alimenté par des Substreams](/sps/tutorial/#video-tutorial) + +### Prérequis + +Avant de commencer, assurez-vous de : + +- Avoir suivi le Guide [Getting Started](https://github.com/streamingfast/substreams-starter) pour configurer votre environnement de développement à l’aide d’un Dev Container. +- Être familier avec The Graph et des concepts de base de la blockchain tels que les transactions et les Protobufs. + +### Étape 1 : Initialiser votre projet + +1. Ouvrez votre Dev Container et exécutez la commande suivante pour initialiser votre projet : + + ```bash + substreams init + ``` + +2. Sélectionnez l'option de projet "minimal". + +3. Remplacez le contenu du fichier généré `substreams.yaml` par la configuration suivante, qui filtre les transactions du compte Orca sur l’ID du programme SPL token : + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Passez le spkg qui vous intéresse + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Sélectionnez les modules disponibles dans votre spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modifiez les champs param pour répondre à vos besoins + # Pour program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Étape 2 : Générer le Manifeste du Subgraph + +Une fois le projet initialisé, générez un manifeste de subgraph en exécutant la commande suivante dans le Dev Container : + +```bash +substreams codegen subgraph +``` + +Cette commande génère un fichier `subgraph.yaml` qui importe le package Substreams comme source de données: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Étape 3 : Définir les Entités dans `schema.graphql` + +Définissez les champs que vous souhaitez enregistrer dans vos entités Subgraph en mettant à jour le fichier `schema.graphql`. + +Voici un exemple : + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +Ce schéma définit une entité `MyTransfer` avec des champs tels que `id`, `amount`, `source`, `designation` et `signers`. + +### Étape 4 : Gérer les Données Substreams dans `mappings.ts` + +Avec les objets Protobuf générés, vous pouvez désormais gérer les données de Substreams décodées dans votre fichier `mappings.ts` trouvé dans le répertoire `./src`. + +L'exemple ci-dessous montre comment extraire vers les entités du subgraph les transferts non dérivés associés à l'Id du compte Orca : + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Étape 5 : Générer les Fichiers Protobuf + +Pour générer les objets Protobuf en AssemblyScript, exécutez la commande suivante : + +```bash +npm run protogen +``` + +Cette commande convertit les définitions Protobuf en AssemblyScript, ce qui permet de les utiliser dans le gestionnaire du subgraph. + +### Conclusion + +Félicitations ! Vous avez configuré avec succès un subgraph alimenté par Substreams basé sur des déclencheurs pour un jeton Solana SPL. Vous pouvez passer à l'étape suivante en personnalisant votre schéma, vos mappages et vos modules pour les adapter à votre cas d'utilisation spécifique. + +### Tutoriel Vidéo + + + +### Ressources supplémentaires + +Pour aller plus loin en matière de personnalisation et d’optimisation, consultez la [documentation officielle de Substreams](https://substreams.streamingfast.io/tutorials/solana). From 82db41d12c0de4a37f6f351486e7cf3f02791bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:22 -0400 Subject: [PATCH 0348/1709] New translations starting-your-subgraph.mdx (Spanish) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/es/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/es/subgraphs/developing/creating/starting-your-subgraph.mdx index aad5349fb149..669a29583ee8 100644 --- a/website/src/pages/es/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/es/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Notas del lanzamiento | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Notas del lanzamiento | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 65119e43b9788b15b0d2f01118e5d988f33ed380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:25 -0400 Subject: [PATCH 0349/1709] New translations new-chain-integration.mdx (Spanish) --- website/src/pages/es/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/indexing/new-chain-integration.mdx b/website/src/pages/es/indexing/new-chain-integration.mdx index 5e56afca4d75..7316741aa0e6 100644 --- a/website/src/pages/es/indexing/new-chain-integration.mdx +++ b/website/src/pages/es/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, en una solicitud por lotes JSON-RPC -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 4c4083b5916beedf48a2369d80cfdcc7608ec290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:27 -0400 Subject: [PATCH 0350/1709] New translations _meta-titles.json (Spanish) --- website/src/pages/es/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/substreams/_meta-titles.json b/website/src/pages/es/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/es/substreams/_meta-titles.json +++ b/website/src/pages/es/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From e07bb4384173781299fc2814c9ed4c2d751f0994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:28 -0400 Subject: [PATCH 0351/1709] New translations faq.mdx (Spanish) --- website/src/pages/es/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/es/substreams/sps/faq.mdx diff --git a/website/src/pages/es/substreams/sps/faq.mdx b/website/src/pages/es/substreams/sps/faq.mdx new file mode 100644 index 000000000000..dd7685e1a4be --- /dev/null +++ b/website/src/pages/es/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Preguntas frecuentes sobre Subgrafos impulsados por Substreams - FAQ +sidebarTitle: FAQ +--- + +## ¿Qué son los Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Los subgrafos están compuestos por fuentes de datos que especifican eventos en la cadena de bloques, y cómo esos eventos deben ser transformados mediante controladores escritos en AssemblyScript. Estos eventos se procesan de manera secuencial, según el orden en el que ocurren los eventos onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## ¿Cuáles son los beneficios de Substreams? + +Hay muchos beneficios al usar Substreams, incluyendo: + +- Componible: Puedes apilar módulos de Substreams como bloques de LEGO y construir sobre módulos de la comunidad, refinando aún más los datos públicos. + +- Indexación de alto rendimiento: Indexación mucho más rápida mediante grandes clústeres de operaciones en paralelo (piensa en BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programable: Usa código para personalizar la extracción, realizar agregaciones en tiempo de transformación y modelar tu salida para múltiples destinos. + +- Acceso a datos adicionales que no están disponibles como parte del JSON RPC + +- Todos los beneficios de Firehose. + +## ¿Qué es el Firehose? + +Desarrollado por StreamingFast (https://www.streamingfast.io/), Firehose es una capa de extracción de datos blockchain diseñada desde cero para procesar el historial completo de las blockchains a velocidades nunca antes vistas. Proporcionando un enfoque basado en archivos y priorizando la transmisión de datos, es un componente clave del conjunto de tecnologías de código abierto de StreamingFast y la base de Substreams. + +Visita la [documentación] (https://firehose.streamingfast.io/) para obtener más información sobre Firehose. + +## ¿Cuáles son los beneficios de Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +La [documentación de Substreams] (/substreams/introduction/) te enseñará cómo construir módulos de Substreams. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +La [última herramienta de Substreams Codegen] (https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) te permitirá iniciar un proyecto de Substreams sin necesidad de escribir código. + +## ¿Cuál es el papel de los módulos de Rust en Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## ¿Qué hace que Substreams sea componible? + +Cuando se usa Substreams, la composición ocurre en la capa de transformación, lo que permite que los módulos en caché sean reutilizados. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From d86adb98e82e911ad6db1a2a7256f2c093527b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:29 -0400 Subject: [PATCH 0352/1709] New translations introduction.mdx (Spanish) --- .../pages/es/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/es/substreams/sps/introduction.mdx diff --git a/website/src/pages/es/substreams/sps/introduction.mdx b/website/src/pages/es/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..4340733cfc84 --- /dev/null +++ b/website/src/pages/es/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introducción a los Subgrafos Impulsados por Substreams +sidebarTitle: Introducción +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Descripción + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +Existen dos métodos para habilitar esta tecnología: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Recursos Adicionales + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 76b91804af0e88e3f13503b61ffca1e8a1088bc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:31 -0400 Subject: [PATCH 0353/1709] New translations triggers.mdx (Spanish) --- .../src/pages/es/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/es/substreams/sps/triggers.mdx diff --git a/website/src/pages/es/substreams/sps/triggers.mdx b/website/src/pages/es/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..16db4057a732 --- /dev/null +++ b/website/src/pages/es/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Disparadores de Substreams +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Descripción + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. Los bytes que contienen los datos de Substreams se decodifican en el objeto 'Transactions' generado, y este objeto se utiliza como cualquier otro objeto de AssemblyScript. +2. Iterando sobre las transacciones +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Recursos Adicionales + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 33047e46b23332943c022f1ac2742621a7a7caf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:32 -0400 Subject: [PATCH 0354/1709] New translations tutorial.mdx (Spanish) --- .../src/pages/es/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/es/substreams/sps/tutorial.mdx diff --git a/website/src/pages/es/substreams/sps/tutorial.mdx b/website/src/pages/es/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..d989932c87e1 --- /dev/null +++ b/website/src/pages/es/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Configurar un Subgrafo Potenciado por Substreams en Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Comenzar + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Antes de comenzar, asegúrate de: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Estar familiarizado con The Graph y conceptos básicos de blockchain, como transacciones y Protobufs. + +### Paso 1: Inicializa tu proyecto + +1. Abre tu Dev Container y ejecuta el siguiente comando para inicializar tu proyecto: + + ```bash + substreams init + ``` + +2. Selecciona la opción de proyecto "mínimo". + +3. Reemplaza el contenido del archivo 'substreams.yam'l generado con la siguiente configuración, que filtra las transacciones para la cuenta de Orca en el ID del programa SPL token: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Paso 2: Generar el Manifiesto del Subgrafo + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgrafo +``` + +Generarás un manifiesto subgraph.yaml que importa el paquete de Substreams como una fuente de datos: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Paso 3: Definir Entidades en schema.graphql + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +Este esquema define una entidad 'MyTransfer' con campos como 'id', 'amount', 'source', 'designation' y 'signers'. + +### Paso 4: Manejar los datos de Substreams en 'mappings.ts' + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Paso 5: Generar Archivos Protobuf + +Para generar objetos Protobuf en AssemblyScript, ejecuta el siguiente comando: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Recursos Adicionales + +Para una personalización y optimización más avanzada, consulta la [documentación oficial de Substreams] (https://substreams.streamingfast.io/tutorials/solana). From 9ad92cf512abf512530959fc57cc9d0b8c2f342e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:33 -0400 Subject: [PATCH 0355/1709] New translations starting-your-subgraph.mdx (Arabic) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/ar/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ar/subgraphs/developing/creating/starting-your-subgraph.mdx index fa6c44e61fb2..b7d5f7168427 100644 --- a/website/src/pages/ar/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ar/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| الاصدار | ملاحظات الإصدار | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| الاصدار | ملاحظات الإصدار | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From a51ca9dbac40197895f48499a8768e77778848c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:36 -0400 Subject: [PATCH 0356/1709] New translations new-chain-integration.mdx (Arabic) --- website/src/pages/ar/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/indexing/new-chain-integration.mdx b/website/src/pages/ar/indexing/new-chain-integration.mdx index b204d002b25d..bcd82dafed18 100644 --- a/website/src/pages/ar/indexing/new-chain-integration.mdx +++ b/website/src/pages/ar/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`، ضمن طلب دفعة استدعاء الإجراء عن بُعد باستخدام تمثيل كائنات جافا سكريبت -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From e48d3f3aaf5789a0bbc69097709fdd00c22215ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:37 -0400 Subject: [PATCH 0357/1709] New translations _meta-titles.json (Arabic) --- website/src/pages/ar/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/substreams/_meta-titles.json b/website/src/pages/ar/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/ar/substreams/_meta-titles.json +++ b/website/src/pages/ar/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 2ba004fd5bc68da1511099ca029150014bce59bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:39 -0400 Subject: [PATCH 0358/1709] New translations faq.mdx (Arabic) --- website/src/pages/ar/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/ar/substreams/sps/faq.mdx diff --git a/website/src/pages/ar/substreams/sps/faq.mdx b/website/src/pages/ar/substreams/sps/faq.mdx new file mode 100644 index 000000000000..c19b0a950297 --- /dev/null +++ b/website/src/pages/ar/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## ماهي فوائد سبستريمز؟ + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- الوصول إلى بيانات إضافية غير متاحة كجزء من إجراء الإستدعاء عن بعد للترميز الكائني لجافاسكريبت + +- All the benefits of the Firehose. + +## What is the Firehose? + +تم تطوير فايرهوز بواسطة [StreamingFast] (https://www.streamingfast.io/) وهو طبقة استخراج بيانات سلاسل الكتل مصممة من الصفر لمعالجة كامل تاريخ سلاسل الكتل بسرعات لم يشهدها من قبل. يوفر نهجاً قائماً على الملفات وأولوية-التدفق، وهو مكون أساسي في مجموعة تقنيات ستريمنج فاست مفتوحة المصدر والأساس لسبستريمز. + +انتقل إلى [الوثائق](https://firehose.streamingfast.io/) لمعرفة المزيد حول فايرهوز. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- أقل تأخير وعدم الاستقصاء: بطريقة قائمة على أولوية-التدفق، تم تصميم نقاط فايرهوز للتسابق لدفع بيانات الكتلة أولاً. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- يستفيد من الملفات المسطحة: يتم استخراج بيانات سلسلة الكتل إلى ملفات مسطحة، وهي أرخص وأكثر موارد الحوسبة تحسيناً. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## كيف يمكنك إنشاء ونشر غراف فرعي مدعوم بسبستريمز؟ + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +إن التكامل مع سبستريمز والغرافات الفرعية المدعومة بسبستريمز واعدة بالعديد من الفوائد، بما في ذلك عمليات فهرسة عالية الأداء وقابلية أكبر للتركيبية من خلال استخدام وحدات المجتمع والبناء عليها. From 6f434fc3a077bed3da5dd1b6f184b2016f4b942f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:40 -0400 Subject: [PATCH 0359/1709] New translations introduction.mdx (Arabic) --- .../pages/ar/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ar/substreams/sps/introduction.mdx diff --git a/website/src/pages/ar/substreams/sps/introduction.mdx b/website/src/pages/ar/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..e74abf2f0998 --- /dev/null +++ b/website/src/pages/ar/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: مقدمة +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## نظره عامة + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### مصادر إضافية + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From da413bf7ac96654f32d31e4c3e1003f629ff0d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:41 -0400 Subject: [PATCH 0360/1709] New translations triggers.mdx (Arabic) --- .../src/pages/ar/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ar/substreams/sps/triggers.mdx diff --git a/website/src/pages/ar/substreams/sps/triggers.mdx b/website/src/pages/ar/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..1bf1a2cf3f51 --- /dev/null +++ b/website/src/pages/ar/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## نظره عامة + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### مصادر إضافية + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From ec38e433b984e93a138760c27e1cc1fe9ad09607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:42 -0400 Subject: [PATCH 0361/1709] New translations tutorial.mdx (Arabic) --- .../src/pages/ar/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/ar/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ar/substreams/sps/tutorial.mdx b/website/src/pages/ar/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..dd85fa999764 --- /dev/null +++ b/website/src/pages/ar/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Get Started + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### مصادر إضافية + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From b7f90bfe7d8f1bba7e51c85233254ed597104d71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:43 -0400 Subject: [PATCH 0362/1709] New translations starting-your-subgraph.mdx (Czech) --- .../creating/starting-your-subgraph.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/cs/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/cs/subgraphs/developing/creating/starting-your-subgraph.mdx index a0fcb52875ca..04f1eee28246 100644 --- a/website/src/pages/cs/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/cs/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Verze | Poznámky vydání | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | +| Verze | Poznámky vydání | +| :---: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | | 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 411c9be37c1ef31d9e89af0688df6f8ea8ce4464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:46 -0400 Subject: [PATCH 0363/1709] New translations new-chain-integration.mdx (Czech) --- website/src/pages/cs/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/indexing/new-chain-integration.mdx b/website/src/pages/cs/indexing/new-chain-integration.mdx index 0d856bfa9374..2954c7f0b494 100644 --- a/website/src/pages/cs/indexing/new-chain-integration.mdx +++ b/website/src/pages/cs/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From a4efa2544f84ee5da22646325aba7a72cbd04c66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:48 -0400 Subject: [PATCH 0364/1709] New translations _meta-titles.json (Czech) --- website/src/pages/cs/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/substreams/_meta-titles.json b/website/src/pages/cs/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/cs/substreams/_meta-titles.json +++ b/website/src/pages/cs/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From cb61296cb78f3015a81fcf56abe3bf8d960aafbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:49 -0400 Subject: [PATCH 0365/1709] New translations faq.mdx (Czech) --- website/src/pages/cs/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/cs/substreams/sps/faq.mdx diff --git a/website/src/pages/cs/substreams/sps/faq.mdx b/website/src/pages/cs/substreams/sps/faq.mdx new file mode 100644 index 000000000000..25e77dc3c7f1 --- /dev/null +++ b/website/src/pages/cs/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## Co jsou substreamu? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## Jaké jsou výhody Substreams? + +Používání ubstreams má mnoho výhod, mimo jiné: + +- Složitelný: Moduly Substreams můžete skládat na sebe jako kostky LEGO, stavět na komunitních moduly a dále vylepšovat veřejná data. + +- Vysoce výkonné indexování: Řádově rychlejší indexování prostřednictvím rozsáhlých klastrů paralelních operací (viz BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programovatelné: Pomocí kódu můžete přizpůsobit extrakci, provádět agregace v čase transformace a modelovat výstup pro více zdrojů. + +- Přístup k dalším údajům, které nejsou k dispozici jako součást JSON RPC + +- Všechny výhody Firehose. + +## Co je Firehose? + +Firehose, vyvinutý společností [StreamingFast](https://www.streamingfast.io/), je vrstva pro extrakci dat z blockchainu, která byla od základu navržena tak, aby zpracovávala celou historii blockchainu dosud nevídanou rychlostí. Poskytuje přístup založený na souborech a streamování v první řadě a je klíčovou součástí sady open-source technologií StreamingFast a základem pro Substreams. + +Další informace o Firehose najdete v [dokumentaci](https://firehose.streamingfast.io/). + +## Jaké jsou výhody Firehose? + +Používání Firehose přináší mnoho výhod, včetně: + +- Nejnižší latence a žádné dotazování: Uzly Firehose jsou navrženy tak, aby se předháněly v odesílání blokových dat jako první. + +- Předchází výpadkům: Navrženo od základu pro vysokou dostupnost. + +- Nikdy nezmeškáte ani minutu: Proudový kurzor Firehose je navržen tak, aby si poradil s rozcestími a pokračoval tam, kde jste skončili, za jakýchkoli podmínek. + +- Nejbohatší datový model:  Nejlepší datový model, který zahrnuje změny zůstatku, celý strom volání, interní transakce, protokoly, změny v úložišti, náklady na plyn a další. + +- Využívá ploché soubory: Blockchain data jsou extrahována do plochých souborů, což je nejlevnější a nejoptimálnější dostupný výpočetní zdroj. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## Jaká je role modulů Rust v Substreamu? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## Co dělá Substreamy složitelnými? + +Při použití substreamů probíhá kompozice na transformační vrstvě, což umožňuje opakované použití modulů uložených v mezipaměti. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## Jak můžete vytvořit a nasadit Substreams využívající podgraf? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +Integrace slibuje mnoho výhod, včetně extrémně výkonného indexování a větší složitelnosti díky využití komunitních modulů a stavění na nich. From c20ca32ec2d4ddc7aa57b55dec733bd4cb4342a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:50 -0400 Subject: [PATCH 0366/1709] New translations introduction.mdx (Czech) --- .../pages/cs/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/cs/substreams/sps/introduction.mdx diff --git a/website/src/pages/cs/substreams/sps/introduction.mdx b/website/src/pages/cs/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..4938d23102e4 --- /dev/null +++ b/website/src/pages/cs/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Úvod +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Přehled + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Další zdroje + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 80706473f6f47982dfa018e04202f4413f45fd69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:51 -0400 Subject: [PATCH 0367/1709] New translations triggers.mdx (Czech) --- .../src/pages/cs/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/cs/substreams/sps/triggers.mdx diff --git a/website/src/pages/cs/substreams/sps/triggers.mdx b/website/src/pages/cs/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..b0c4bea23f3d --- /dev/null +++ b/website/src/pages/cs/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Přehled + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Další zdroje + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 1eb686b00c411c582dad0efff9a2543052303a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:53 -0400 Subject: [PATCH 0368/1709] New translations tutorial.mdx (Czech) --- .../src/pages/cs/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/cs/substreams/sps/tutorial.mdx diff --git a/website/src/pages/cs/substreams/sps/tutorial.mdx b/website/src/pages/cs/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..c1850bab04fa --- /dev/null +++ b/website/src/pages/cs/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Začněte + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Závěr + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Další zdroje + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 8b1912591efdaa629a92ec1515c9b514d106f226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:54 -0400 Subject: [PATCH 0369/1709] New translations starting-your-subgraph.mdx (German) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/de/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/de/subgraphs/developing/creating/starting-your-subgraph.mdx index c198baf1e1f1..a2f39804cff0 100644 --- a/website/src/pages/de/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/de/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Starten Sie den Prozess und erstellen Sie einen Subgraphen, der Ihren Anforderun Erkunden Sie zusätzliche [Ressourcen für APIs](/subgraphs/developing/creating/graph-ts/README/) und führen Sie lokale Tests mit [Matchstick](/subgraphs/developing/creating/unit-testing-framework/) durch. -| Version | Hinweise zur Version | -| :-: | --- | -| 1.2.0 | Unterstützung für [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) hinzugefügt & `eth_call` erklärt | -| 1.1.0 | Unterstützt [Timeseries & Aggregations](#timeseries-and-aggregations). Unterstützung für Typ `Int8` für `id` hinzugefügt. | -| 1.0.0 | Unterstützt die Funktion [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) zum Beschneiden von Subgraphen | -| 0.0.9 | Unterstützt `endBlock` Funktion | -| 0.0.8 | Unterstützung für die Abfrage von [Block-Handlern](/developing/creating-a-subgraph/#polling-filter) und [Initialisierungs-Handlern](/developing/creating-a-subgraph/#once-filter) hinzugefügt. | -| 0.0.7 | Unterstützung für [Dateidatenquellen](/developing/creating-a-subgraph/#file-data-sources) hinzugefügt. | -| 0.0.6 | Unterstützt schnelle [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) Berechnungsvariante. | -| 0.0.5 | Unterstützung für Event-Handler mit Zugriff auf Transaktionsbelege hinzugefügt. | -| 0.0.4 | Unterstützung für die Verwaltung von Subgraphen-Features wurde hinzugefügt. | +| Version | Hinweise zur Version | +| :-----: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1.2.0 | Unterstützung für [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) hinzugefügt & `eth_call` erklärt | +| 1.1.0 | Unterstützt [Timeseries & Aggregations](#timeseries-and-aggregations). Unterstützung für Typ `Int8` für `id` hinzugefügt. | +| 1.0.0 | Unterstützt die Funktion [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) zum Beschneiden von Subgraphen | +| 0.0.9 | Unterstützt `endBlock` Funktion | +| 0.0.8 | Unterstützung für die Abfrage von [Block-Handlern](/developing/creating-a-subgraph/#polling-filter) und [Initialisierungs-Handlern](/developing/creating-a-subgraph/#once-filter) hinzugefügt. | +| 0.0.7 | Unterstützung für [Dateidatenquellen](/developing/creating-a-subgraph/#file-data-sources) hinzugefügt. | +| 0.0.6 | Unterstützt schnelle [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) Berechnungsvariante. | +| 0.0.5 | Unterstützung für Event-Handler mit Zugriff auf Transaktionsbelege hinzugefügt. | +| 0.0.4 | Unterstützung für die Verwaltung von Subgraphen-Features wurde hinzugefügt. | From e0eb0b05716ee5461e5aea67110510fd6482c317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:57 -0400 Subject: [PATCH 0370/1709] New translations unit-testing-framework.mdx (German) --- .../developing/creating/unit-testing-framework.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website/src/pages/de/subgraphs/developing/creating/unit-testing-framework.mdx b/website/src/pages/de/subgraphs/developing/creating/unit-testing-framework.mdx index 357617cfce50..f8733d6ef561 100644 --- a/website/src/pages/de/subgraphs/developing/creating/unit-testing-framework.mdx +++ b/website/src/pages/de/subgraphs/developing/creating/unit-testing-framework.mdx @@ -155,7 +155,7 @@ Also you can check out the video series on ["How to use Matchstick to write unit ## Struktur der Tests -WICHTIG: Die unten beschriebene Teststruktur hängt von der Version `matchstick-as` >=0.5.0\*\*\_ ab. +WICHTIG: Die unten beschriebene Teststruktur hängt von der Version `matchstick-as` >=0.5.0\*\*_ ab. ### describe() @@ -728,12 +728,12 @@ import { addMetadata, assert, createMockedFunction, clearStore, test } from 'mat import { Gravity } from '../../generated/Gravity/Gravity' import { Address, BigInt, ethereum } from '@graphprotocol/graph-ts' -let contractAddress = Address.fromString('0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7') +let contractAddress = Address. fromString('0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7') let expectedResult = Address.fromString('0x90cBa2Bbb19ecc291A12066Fd8329D65FA1f1947') -let bigIntParam = BigInt.fromString('1234') +let bigIntParam = BigInt. fromString('1234') createMockedFunction(contractAddress, 'gravatarToOwner', 'gravatarToOwner(uint256):(address)') - .withArgs([ethereum.Value.fromSignedBigInt(bigIntParam)]) - .returns([ethereum.Value.fromAddress(Address.fromString('0x90cBa2Bbb19ecc291A12066Fd8329D65FA1f1947'))]) +.withArgs([ethereum.Value.fromSignedBigInt(bigIntParam)]) +.returns([ethereum.Value.fromAddress(Address. fromString('0x90cBa2Bbb19ecc291A12066Fd8329D65FA1f1947'))]) let gravity = Gravity.bind(contractAddress) let result = gravity.gravatarToOwner(bigIntParam) From b4a778bcd75f8d4b98145eb43895fe013e7add32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:58 -0400 Subject: [PATCH 0371/1709] New translations new-chain-integration.mdx (German) --- website/src/pages/de/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/indexing/new-chain-integration.mdx b/website/src/pages/de/indexing/new-chain-integration.mdx index eed49796a99f..0403c54ce447 100644 --- a/website/src/pages/de/indexing/new-chain-integration.mdx +++ b/website/src/pages/de/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ Damit Graph Node Daten aus einer EVM-Kette aufnehmen kann, muss der RPC-Knoten d - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in einem JSON-RPC-Batch-Antrag -- `trace_filter`  *(begrenztes Tracing und optional erforderlich für Graph Node)* +- `trace_filter`  _(begrenztes Tracing und optional erforderlich für Graph Node)_ ### 2. Firehose Integration From 0daff1698c7a9257fb0c9e29bc337f3d1d85bef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:15:59 -0400 Subject: [PATCH 0372/1709] New translations _meta-titles.json (German) --- website/src/pages/de/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/substreams/_meta-titles.json b/website/src/pages/de/substreams/_meta-titles.json index cf75f2729d64..5050d4df9e35 100644 --- a/website/src/pages/de/substreams/_meta-titles.json +++ b/website/src/pages/de/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Entwicklung" + "developing": "Entwicklung", + "sps": "Substreams-getriebene Subgraphen" } From a25bac339aaebd01dc5313cb7e6b3f9230fdac88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:01 -0400 Subject: [PATCH 0373/1709] New translations faq.mdx (German) --- website/src/pages/de/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/de/substreams/sps/faq.mdx diff --git a/website/src/pages/de/substreams/sps/faq.mdx b/website/src/pages/de/substreams/sps/faq.mdx new file mode 100644 index 000000000000..705188578529 --- /dev/null +++ b/website/src/pages/de/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-basierte Subgraphen FAQ +sidebarTitle: FAQ +--- + +## Was sind Substreams? + +Substreams ist eine außergewöhnlich leistungsstarke Verarbeitungsmaschine, die umfangreiche Blockchain-Datenströme verarbeiten kann. Sie ermöglicht es Ihnen, Blockchain-Daten für eine schnelle und nahtlose Verarbeitung durch Endbenutzeranwendungen zu verfeinern und zu gestalten. + +Genauer gesagt handelt es sich um eine Blockchain-agnostische, parallelisierte und Streaming-first-Engine, die als Blockchain-Datenumwandlungsschicht dient. Sie wird von [Firehose](https://firehose.streamingfast.io/) angetrieben und ermöglicht es Entwicklern, Rust-Module zu schreiben, auf Community-Modulen aufzubauen, eine extrem leistungsstarke Indizierung bereitzustellen und ihre Daten überall [zu versenken](/substreams/developing/sinks/). + +Substreams wird von [StreamingFast](https://www.streamingfast.io/) entwickelt. Besuchen Sie die [Substreams-Dokumentation](/substreams/introduction/), um mehr über Substreams zu erfahren. + +## Was sind Substreams-basierte Subgraphen? + +Die [Substreams-basierte Subgraphen](/sps/introduction/) kombinieren die Leistungsfähigkeit von Substreams mit der Abfragefähigkeit von Subgraphen. Bei der Veröffentlichung eines Substreams-basierten Subgraphen können die von den Substreams-Transformationen erzeugten Daten [Entitätsänderungen ausgeben](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs), die mit Subgraph-Entitäten kompatibel sind. + +Wenn Sie bereits mit der Entwicklung von Subgraphen vertraut sind, dann beachten Sie, dass Substreams-basierte Subgraphen dann abgefragt werden können, als ob sie von der AssemblyScript-Transformationsschicht erzeugt worden wären, mit allen Vorteilen von Subgraphen, wie der Bereitstellung einer dynamischen und flexiblen GraphQL-API. + +## Wie unterscheiden sich Substreams-basierte Subgraphen von Subgraphen? + +Subgraphen bestehen aus Datenquellen, die Onchain-Ereignisse spezifizieren und angeben, wie diese Ereignisse über in Assemblyscript geschriebene Handler umgewandelt werden sollen. Diese Ereignisse werden nacheinander verarbeitet, basierend auf der Reihenfolge, in der die Ereignisse in der Kette auftreten. + +Im Gegensatz dazu haben Substreams-basierte Subgraphen eine einzige Datenquelle, die auf ein Substreams-Paket verweist, das vom Graph Node verarbeitet wird. Substreams haben im Vergleich zu herkömmlichen Subgraphen Zugriff auf zusätzliche granulare Onchain-Daten und können zudem von einer massiv parallelisierten Verarbeitung profitieren, was zu deutlich schnelleren Verarbeitungszeiten führen kann. + +## Was sind die Vorteile der Verwendung von Substreams-basierten Subgraphen? + +Substreams-basierte Subgraphen kombinieren alle Vorteile von Substreams mit der Abfragefähigkeit von Subgraphen. Sie bieten The Graph eine bessere Zusammensetzbarkeit und eine leistungsstarke Indizierung. Sie ermöglichen auch neue Datenanwendungsfälle; sobald Sie beispielsweise Ihren Substreams-basierten Subgraphen erstellt haben, können Sie Ihre [Substreams-Module] (https://docs.substreams.dev/reference-material/substreams-components/modules#modules) für die Ausgabe an verschiedene [Senken] (https://substreams.streamingfast.io/reference-and-specs/manifests#sink) wie PostgreSQL, MongoDB und Kafka wiederverwenden. + +## Was sind die Vorteile von Substreams? + +Die Verwendung von Substreams hat viele Vorteile, unter anderem: + +- Zusammensetzbar: Sie können Substreams-Module wie LEGO-Steine stapeln und auf Community-Modulen aufbauen, um öffentliche Daten weiter zu verfeinern. + +- Leistungsstarke Indexierung: Um Größenordnungen schnellere Indizierung durch groß angelegte Cluster paralleler Operationen (siehe BigQuery). + +- Versenken Sie überall: Versenken Sie Ihre Daten, wo immer Sie wollen: PostgreSQL, MongoDB, Kafka, Subgraphen, Flat Files, Google Sheets. + +- Programmierbar: Verwenden Sie Code, um die Extraktion anzupassen, Aggregationen zur Transformationszeit durchzuführen und Ihre Ausgabe für mehrere Sinken zu modellieren. + +- Zugang zu zusätzlichen Daten, die nicht als Teil des JSON RPC verfügbar sind + +- Alle Vorteile von Firehose. + +## Was ist überhaupt Firehose? + +Der von [StreamingFast] (https://www.streamingfast.io/) entwickelte Firehose ist eine Blockchain-Datenextraktionsschicht, die von Grund auf neu entwickelt wurde, um die gesamte Historie von Blockchains mit bisher nicht gekannter Geschwindigkeit zu verarbeiten. Sie bietet einen dateibasierten und streamingorientierten Ansatz und ist eine Kernkomponente der Open-Source-Technologien von StreamingFast und die Grundlage für Substreams. + +Besuchen Sie die [Dokumentation] (https://firehose.streamingfast.io/), um mehr über Firehose zu erfahren. + +## Was sind die Vorteile von Firehose? + +Die Verwendung von Firehose bietet viele Vorteile, darunter: + +- Geringste Latenz und kein Polling: Die Firehose-Knoten sind so konstruiert, dass sie die Blockdaten zuerst herausgeben, und zwar nach dem Streaming-Prinzip. + +- Verhindert Ausfallzeiten: Von Grund auf für Hochverfügbarkeit konzipiert. + +- Verpassen Sie nie einen Beat: Der Firehose Stream Cursor ist so konzipiert, dass er mit Forks umgehen kann und in jeder Situation dort weitermacht, wo Sie aufgehört haben. + +- Umfangreichstes Datenmodell: Bestes Datenmodell, das die Änderungen des Kontostands, den vollständigen Aufrufbaum, interne Transaktionen, Logs, Speicheränderungen, Gaskosten und mehr enthält. + +- Nutzung von Flat Files: Blockchain-Daten werden in Flat Files extrahiert, der billigsten und optimalsten verfügbaren Rechenressource. + +## Wo erhalten Entwickler weitere Informationen über Substreams-basierten Subgraphen und Substreams? + +In der [Substreams-Dokumentation](/substreams/introduction/) erfahren Sie, wie Sie Substreams-Module erstellen können. + +Die [Dokumentation zu Substreams-basierten Subgraphen](/sps/introduction/) zeigt Ihnen, wie Sie diese für die Bereitstellung in The Graph verpacken können. + +Das [neueste Substreams Codegen-Tool] (https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) ermöglicht es Ihnen, ein Substreams-Projekt ohne jeglichen Code zu booten. + +## Welche Rolle spielen die Rust-Module in Substreams? + +Rust-Module sind das Äquivalent zu den AssemblyScript-Mappern in Subgraphen. Sie werden auf ähnliche Weise in WASM kompiliert, aber das Programmiermodell ermöglicht eine parallele Ausführung. Sie definieren die Art der Transformationen und Aggregationen, die Sie auf die Blockchain-Rohdaten anwenden möchten. + +Weitere Informationen finden Sie in der [Moduldokumentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules). + +## Was macht Substreams kompositionsfähig? + +Bei der Verwendung von Substreams erfolgt die Komposition auf der Transformationsschicht, wodurch zwischengespeicherte Module wiederverwendet werden können. + +Als Datenbeispiel kann Alice ein DEX-Preismodul erstellen, Bob kann damit einen Volumenaggregator für einige Token seines Interesses erstellen, und Lisa kann vier einzelne DEX-Preismodule zu einem Preisorakel kombinieren. Eine einzige Substreams-Anfrage bündelt all diese individuellen Module und verbindet sie miteinander, um einen viel feineren Datenstrom anzubieten. Dieser Datenstrom kann dann verwendet werden, um einen Subgraphen aufzufüllen und von den Verbrauchern abgefragt zu werden. + +## Wie können Sie einen Substreams-basierten Subgraphen erstellen und einsetzen? + +Nach der [Definition](/sps/introduction/) eines Subgraphen können Sie den Graph CLI verwenden, um ihn in [Subgraph Studio](https://thegraph.com/studio/) einzusetzen. + +## Wo finde ich Datenbeispiele für Substreams und Substreams-basierte Subgraphen? + +Sie können [dieses Github Repo] (https://github.com/pinax-network/awesome-substreams) besuchen, um Datenbeispiele für Substreams und Substreams-basierte Subgraphen zu finden. + +## Was bedeuten Substreams und Substreams-basierte Subgraphen für The Graph Network? + +Die Integration verspricht viele Vorteile, darunter eine extrem leistungsstarke Indizierung und eine größere Kompositionsfähigkeit durch die Nutzung von Community-Modulen und deren Weiterentwicklung. From b869217a6203002627d76493d2c08e9f35f67de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:02 -0400 Subject: [PATCH 0374/1709] New translations introduction.mdx (German) --- .../pages/de/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/de/substreams/sps/introduction.mdx diff --git a/website/src/pages/de/substreams/sps/introduction.mdx b/website/src/pages/de/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..396c53077fd1 --- /dev/null +++ b/website/src/pages/de/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Einführung in Substreams-Powered Subgraphen +sidebarTitle: Einführung +--- + +Steigern Sie die Effizienz und Skalierbarkeit Ihres Subgraphen, indem Sie [Substreams](/substreams/introduction/) verwenden, um vorindizierte Blockchain-Daten zu streamen. + +## Überblick + +Verwenden Sie ein Substreams-Paket (`.spkg`) als Datenquelle, um Ihrem Subgraph Zugang zu einem Strom von vorindizierten Blockchain-Daten zu geben. Dies ermöglicht eine effizientere und skalierbarere Datenverarbeitung, insbesondere bei großen oder komplexen Blockchain-Netzwerken. + +### Besonderheiten + +Es gibt zwei Methoden zur Aktivierung dieser Technologie: + +1. **Verwendung von Substreams [triggers](/sps/triggers/)**: Nutzen Sie ein beliebiges Substreams-Modul, indem Sie das Protobuf-Modell über einen Subgraph-Handler importieren und Ihre gesamte Logik in einen Subgraph verschieben. Diese Methode erstellt die Subgraph-Entitäten direkt im Subgraph. + +2. **Unter Verwendung von [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: Wenn Sie einen größeren Teil der Logik in Substreams schreiben, können Sie die Ausgabe des Moduls direkt in [graph-node](/indexing/tooling/graph-node/) verwenden. In graph-node können Sie die Substreams-Daten verwenden, um Ihre Subgraph-Entitäten zu erstellen. + +Sie können wählen, wo Sie Ihre Logik platzieren möchten, entweder im Subgraph oder in Substreams. Überlegen Sie jedoch, was mit Ihren Datenanforderungen übereinstimmt, da Substreams ein parallelisiertes Modell hat und Auslöser linear in den Graphknoten verbraucht werden. + +### Zusätzliche Ressourcen + +Unter den folgenden Links finden Sie Anleitungen zur Verwendung von Tools zur Codegenerierung, mit denen Sie schnell Ihr erstes durchgängiges Substreams-Projekt erstellen können: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 814c98355944b2f0307bd4af06c3e1d9e048dbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:03 -0400 Subject: [PATCH 0375/1709] New translations triggers.mdx (German) --- .../src/pages/de/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/de/substreams/sps/triggers.mdx diff --git a/website/src/pages/de/substreams/sps/triggers.mdx b/website/src/pages/de/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..792dee351596 --- /dev/null +++ b/website/src/pages/de/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Trigger für Substreams +--- + +Verwenden Sie Custom Triggers und aktivieren Sie die volle Nutzung von GraphQL. + +## Überblick + +Mit benutzerdefinierten Triggern können Sie Daten direkt in Ihre Subgraph-Mappings-Datei und Entitäten senden, die Tabellen und Feldern ähneln. So können Sie die GraphQL-Schicht vollständig nutzen. + +Durch den Import der Protobuf-Definitionen, die von Ihrem Substreams-Modul ausgegeben werden, können Sie diese Daten in Ihrem Subgraph-Handler empfangen und verarbeiten. Dies gewährleistet eine effiziente und schlanke Datenverwaltung innerhalb des Subgraph-Frameworks. + +### Definieren von `handleTransactions` + +Der folgende Code veranschaulicht, wie eine Funktion `handleTransactions` in einem Subgraph-Handler definiert wird. Diese Funktion empfängt rohe Substream-Bytes als Parameter und dekodiert sie in ein `Transactions`-Objekt. Für jede Transaktion wird eine neue Subgraph-Entität erstellt. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Das sehen Sie in der Datei `mappings.ts`: + +1. Die Bytes, die die Substreams enthalten, werden in das generierte `Transactions`-Objekt dekodiert. Dieses Objekt wird wie jedes andere AssemblyScript-Objekt verwendet +2. Looping über die Transaktionen +3. Erstellen einer neuen Subgraph-Entität für jede Transaktion + +Ein ausführliches Datenbeispiel für einen auslöserbasierten Subgraphen finden Sie [hier](/sps/tutorial/). + +### Zusätzliche Ressourcen + +Um Ihr erstes Projekt im Entwicklungscontainer zu erstellen, lesen Sie einen der [Schritt-für-Schritt-Guide](/substreams/developing/dev-container/). From 23d4ed5521ba8ec40609926f4386e35efecbe462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:04 -0400 Subject: [PATCH 0376/1709] New translations tutorial.mdx (German) --- .../src/pages/de/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/de/substreams/sps/tutorial.mdx diff --git a/website/src/pages/de/substreams/sps/tutorial.mdx b/website/src/pages/de/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..598a1f340089 --- /dev/null +++ b/website/src/pages/de/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Einrichten eines Substreams-basierten Subgraphen auf Solana" +sidebarTitle: Tutorial +--- + +Erfolgreiche Einrichtung eines auslösungsbasierten Substreams-powered Subgraphs für ein Solana SPL-Token. + +## Los geht’s + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Voraussetzungen + +Bevor Sie beginnen, stellen Sie Folgendes sicher: + +- Vervollständigen Sie das [Erste-Schritte-Guide] (https://github.com/streamingfast/substreams-starter), um Ihre Entwicklungsumgebung mit einem Dev Container einzurichten. +- Sie sollten mit The Graph und grundlegenden Blockchain-Konzepten wie Transaktionen und Protobufs vertraut sein. + +### Schritt 1: Initialisieren Sie Ihr Projekt + +1. Öffnen Sie Ihren Dev Container und führen Sie den folgenden Befehl aus, um Ihr Projekt zu initialisieren: + + ```bash + substreams init + ``` + +2. Wählen Sie die Option „Minimalprojekt“. + +3. Ersetzen Sie den Inhalt der generierten Datei `substreams.yaml` durch die folgende Konfiguration, die Transaktionen für das Orca-Konto nach der SPL-Token-Programm-ID filtert: + +```yaml +specVersion: v0.1.0 +Paket: + Name: my_project_sol + Version: v0.1.0 + +importiert: # Übergeben Sie Ihr spkg von Interesse + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +Module: + - name: map_spl_transfers + use: solana:map_block # Wählen Sie die entsprechenden Module aus, die in Ihrem spkg verfügbar sind + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +netzwerk: solana-mainnet-beta + +params: # Passen Sie die param-Felder an Ihre Bedürfnisse an. + # Für program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Schritt 2: Erzeugen des Subgraph-Manifests + +Sobald das Projekt initialisiert ist, erzeugen Sie ein Subgraph-Manifest, indem Sie den folgenden Befehl im Dev Container ausführen: + +```bash +substreams codegen subgraph +``` + +Sie erzeugen ein `subgraph.yaml`-Manifest, das das Substreams-Paket als Datenquelle importiert: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Schritt 3: Definieren Sie Entitäten in `schema.graphql` + +Definieren Sie die Felder, die Sie in Ihren Subgraph-Entitäten speichern wollen, indem Sie die Datei `schema.graphql` aktualisieren. + +Hier ist ein Beispiel: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +Dieses Schema definiert eine `MyTransfer`-Entität mit Feldern wie `id`, `amount`, `source`, `designation` und `signers`. + +### Schritt 4: Umgang mit Substreams Daten in `mappings.ts` + +Mit den erzeugten Protobuf-Objekten können Sie nun die dekodierten Substreams-Daten in Ihrer Datei `mappings.ts` im Verzeichnis `./src`verarbeiten. + +Das folgende Beispiel zeigt, wie die nicht abgeleiteten Überweisungen, die mit der Orca-Kontonummer verbunden sind, in die Subgraph-Entitäten extrahiert werden: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Schritt 5: Erzeugen von Protobuf-Dateien + +Um Protobuf-Objekte in AssemblyScript zu erzeugen, führen Sie den folgenden Befehl aus: + +```bash +npm run protogen +``` + +Dieser Befehl konvertiert die Protobuf-Definitionen in AssemblyScript, so dass Sie sie im Handler des Subgraphen verwenden können. + +### Schlussfolgerung + +Herzlichen Glückwunsch! Sie haben erfolgreich einen Trigger-basierten Substreams-powered Subgraph für ein Solana SPL-Token eingerichtet. Im nächsten Schritt können Sie Ihr Schema, Ihre Mappings und Module an Ihren spezifischen Anwendungsfall anpassen. + +### Video-Anleitung + + + +### Zusätzliche Ressourcen + +Für weitergehende Anpassungen und Optimierungen lesen Sie bitte die offizielle [Substreams-Dokumentation] (https://substreams.streamingfast.io/tutorials/solana). From bf2bdd1a819d41f5832c9330a5f79de6e285c7c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:05 -0400 Subject: [PATCH 0377/1709] New translations starting-your-subgraph.mdx (Italian) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/it/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/it/subgraphs/developing/creating/starting-your-subgraph.mdx index 49090d6b963f..5b0ac052a82d 100644 --- a/website/src/pages/it/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/it/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Versione | Note di rilascio | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Versione | Note di rilascio | +| :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From de79bfce879309bb2cf4110417a89e7fa8d794e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:09 -0400 Subject: [PATCH 0378/1709] New translations new-chain-integration.mdx (Italian) --- website/src/pages/it/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/indexing/new-chain-integration.mdx b/website/src/pages/it/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/it/indexing/new-chain-integration.mdx +++ b/website/src/pages/it/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 5a922b69f44223738348e8442cf707d3ec195443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:11 -0400 Subject: [PATCH 0379/1709] New translations _meta-titles.json (Italian) --- website/src/pages/it/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/substreams/_meta-titles.json b/website/src/pages/it/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/it/substreams/_meta-titles.json +++ b/website/src/pages/it/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From ce207d13098a313016cd551d0ba371f0daa3919c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:12 -0400 Subject: [PATCH 0380/1709] New translations faq.mdx (Italian) --- website/src/pages/it/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/it/substreams/sps/faq.mdx diff --git a/website/src/pages/it/substreams/sps/faq.mdx b/website/src/pages/it/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/it/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 295448c2ee9b444a3bc7910e9c3540ac861c6a48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:13 -0400 Subject: [PATCH 0381/1709] New translations introduction.mdx (Italian) --- .../pages/it/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/it/substreams/sps/introduction.mdx diff --git a/website/src/pages/it/substreams/sps/introduction.mdx b/website/src/pages/it/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..0e5be69aa0c3 --- /dev/null +++ b/website/src/pages/it/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduzione +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Panoramica + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 39731d710ddb570a15958bd18b72c573ffe07cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:14 -0400 Subject: [PATCH 0382/1709] New translations triggers.mdx (Italian) --- .../src/pages/it/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/it/substreams/sps/triggers.mdx diff --git a/website/src/pages/it/substreams/sps/triggers.mdx b/website/src/pages/it/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..711dcaa6423a --- /dev/null +++ b/website/src/pages/it/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Panoramica + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From e484ce906f269a8b1d7eeaf79f5262fc91e92e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:15 -0400 Subject: [PATCH 0383/1709] New translations tutorial.mdx (Italian) --- .../src/pages/it/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/it/substreams/sps/tutorial.mdx diff --git a/website/src/pages/it/substreams/sps/tutorial.mdx b/website/src/pages/it/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..06a271e30ff1 --- /dev/null +++ b/website/src/pages/it/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Iniziare + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From e2491ba3d5e4c95a2627ead012b1f7764d5eea75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:16 -0400 Subject: [PATCH 0384/1709] New translations starting-your-subgraph.mdx (Japanese) --- .../creating/starting-your-subgraph.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ja/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ja/subgraphs/developing/creating/starting-your-subgraph.mdx index 3fd648b44813..3c40e48ef42d 100644 --- a/website/src/pages/ja/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ja/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| バージョン | リリースノート | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | +| バージョン | リリースノート | +| :---: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | | 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From b81c4f8c032f9ad44c09ca973da2d4d5b1c9060c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:20 -0400 Subject: [PATCH 0385/1709] New translations new-chain-integration.mdx (Japanese) --- website/src/pages/ja/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/indexing/new-chain-integration.mdx b/website/src/pages/ja/indexing/new-chain-integration.mdx index f6fa2b643fc3..dc9408b25f69 100644 --- a/website/src/pages/ja/indexing/new-chain-integration.mdx +++ b/website/src/pages/ja/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 43f5e159871bfce72e39108e72c58e933317fa24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:21 -0400 Subject: [PATCH 0386/1709] New translations _meta-titles.json (Japanese) --- website/src/pages/ja/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/substreams/_meta-titles.json b/website/src/pages/ja/substreams/_meta-titles.json index 1c58294c4bfc..17029448ac79 100644 --- a/website/src/pages/ja/substreams/_meta-titles.json +++ b/website/src/pages/ja/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "開発" + "developing": "開発", + "sps": "Substreams-powered Subgraphs" } From 76632639d66b0263e4b83ce8563daa50740c8d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:22 -0400 Subject: [PATCH 0387/1709] New translations faq.mdx (Japanese) --- website/src/pages/ja/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/ja/substreams/sps/faq.mdx diff --git a/website/src/pages/ja/substreams/sps/faq.mdx b/website/src/pages/ja/substreams/sps/faq.mdx new file mode 100644 index 000000000000..c038b396b268 --- /dev/null +++ b/website/src/pages/ja/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## サブストリームとは何ですか? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## サブストリームの利点は何ですか? + +サブストリームを使用すると、次のような多くの利点があります。 + +- コンポーザブル: レゴ ブロックのようなサブストリーム モジュールを積み重ね、コミュニティ モジュールを基にして公開データをさらに洗練させることができます。 + +- 高パフォーマンスのインデックス作成: 並列操作の大規模なクラスター (BigQuery を考えてください) を通じて、桁違いに高速なインデックス作成を実現します。 + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- プログラム可能: コードを使用して抽出をカスタマイズし、変換時の集計を実行し、複数のシンクの出力をモデル化します。 + +- JSON RPC の一部として利用できない追加データへのアクセス + +- Firehose のすべての利点。 + +## 消防ホースとは何ですか? + +[StreamingFast](https://www.streamingfast.io/) によって開発された Firehose は、ブロックチェーンの全履歴をこれまで見たことのない速度で処理するためにゼロから設計されたブロックチェーン データ抽出レイヤーです。ファイルベースでストリーミングファーストのアプローチを提供するこれは、StreamingFast のオープンソース テクノロジ スイートの中核コンポーネントであり、サブストリームの基盤です。 + +Firehose の詳細については、[documentation](https://firehose.streamingfast.io/) にアクセスしてください。 + +## 消防ホースの利点は何ですか? + +Firehose を使用すると、次のような多くの利点があります。 + +- 最低のレイテンシーとポーリングなし: ストリーミングファーストの方式で、Firehose ノードはブロック データを最初にプッシュするために競合するように設計されています。 + +- ダウンタイムの防止: 高可用性を実現するためにゼロから設計されています。 + +- ビートを見逃すことはありません: Firehose ストリーム カーソルは、フォークを処理し、どのような状況でも中断したところから続行するように設計されています。 + +- 最も豊富なデータ モデル: 残高の変更、完全なコール ツリー、内部トランザクション、ログ、ストレージの変更、ガス料金などが含まれる最適なデータ モデル。 + +- フラット ファイルの活用: ブロックチェーン データは、利用可能な最も安価で最適化されたコンピューティング リソースであるフラット ファイルに抽出されます。 + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## サブストリームにおけるRustモジュールの役割は何ですか? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## サブストリームを構成可能にするものは何ですか? + +サブストリームを使用すると、変換レイヤーで合成が行われ、キャッシュされたモジュールを再利用できるようになります。 + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## サブストリームを利用したサブグラフを構築してデプロイするにはどうすればよいでしょうか? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +この統合は、非常に高いパフォーマンスのインデクシングと、コミュニティモジュールを活用し、それらを基に構築することによる大きな組み合わせ可能性を含む多くの利点を約束しています。 From ff21e883d9812bfe5e48f8f1f79d958c551fa03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:23 -0400 Subject: [PATCH 0388/1709] New translations introduction.mdx (Japanese) --- .../pages/ja/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ja/substreams/sps/introduction.mdx diff --git a/website/src/pages/ja/substreams/sps/introduction.mdx b/website/src/pages/ja/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..71fabdd0416c --- /dev/null +++ b/website/src/pages/ja/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: イントロダクション +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## 概要 + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### その他のリソース + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From e56bf285584aca63a37c93aa88082ab952b14976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:24 -0400 Subject: [PATCH 0389/1709] New translations triggers.mdx (Japanese) --- .../src/pages/ja/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ja/substreams/sps/triggers.mdx diff --git a/website/src/pages/ja/substreams/sps/triggers.mdx b/website/src/pages/ja/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..9ddb07c5477c --- /dev/null +++ b/website/src/pages/ja/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## 概要 + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### その他のリソース + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 9caccde0346f25716eed9d090c7f8fde61873723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:25 -0400 Subject: [PATCH 0390/1709] New translations tutorial.mdx (Japanese) --- .../src/pages/ja/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/ja/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ja/substreams/sps/tutorial.mdx b/website/src/pages/ja/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..46c4c8305676 --- /dev/null +++ b/website/src/pages/ja/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## 始めましょう + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### その他のリソース + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 2fdfb8e1a9cef94e04a3b136289313fc514953e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:26 -0400 Subject: [PATCH 0391/1709] New translations starting-your-subgraph.mdx (Korean) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/ko/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ko/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/ko/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ko/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From d7b0585d55a0fd87bd0383ea270ab8e954c4fa73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:30 -0400 Subject: [PATCH 0392/1709] New translations new-chain-integration.mdx (Korean) --- website/src/pages/ko/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/indexing/new-chain-integration.mdx b/website/src/pages/ko/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/ko/indexing/new-chain-integration.mdx +++ b/website/src/pages/ko/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From f9a7be34dd339880a122a2a34af3255a677861e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:31 -0400 Subject: [PATCH 0393/1709] New translations _meta-titles.json (Korean) --- website/src/pages/ko/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/substreams/_meta-titles.json b/website/src/pages/ko/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/ko/substreams/_meta-titles.json +++ b/website/src/pages/ko/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From eb62666198f2b64cd26c9ee4aab9e5d6a87097c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:32 -0400 Subject: [PATCH 0394/1709] New translations faq.mdx (Korean) --- website/src/pages/ko/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/ko/substreams/sps/faq.mdx diff --git a/website/src/pages/ko/substreams/sps/faq.mdx b/website/src/pages/ko/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/ko/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 2b37fda28eef48b47ea85c8fc39f6fd9cbc36911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:34 -0400 Subject: [PATCH 0395/1709] New translations introduction.mdx (Korean) --- .../pages/ko/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ko/substreams/sps/introduction.mdx diff --git a/website/src/pages/ko/substreams/sps/introduction.mdx b/website/src/pages/ko/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..92d8618165dd --- /dev/null +++ b/website/src/pages/ko/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduction +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Overview + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From bc08d85392100c8fbbb1deca61820eb3d5f86dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:35 -0400 Subject: [PATCH 0396/1709] New translations triggers.mdx (Korean) --- .../src/pages/ko/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ko/substreams/sps/triggers.mdx diff --git a/website/src/pages/ko/substreams/sps/triggers.mdx b/website/src/pages/ko/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..66687aa21889 --- /dev/null +++ b/website/src/pages/ko/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Overview + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 3377c9ef86aeeba65f34994d3959291151a2794a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:36 -0400 Subject: [PATCH 0397/1709] New translations tutorial.mdx (Korean) --- .../src/pages/ko/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/ko/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ko/substreams/sps/tutorial.mdx b/website/src/pages/ko/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..e20a22ba4b1c --- /dev/null +++ b/website/src/pages/ko/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Get Started + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 8968dafcddb7ebe674dae8ec7d240855a2b799c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:37 -0400 Subject: [PATCH 0398/1709] New translations starting-your-subgraph.mdx (Dutch) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/nl/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/nl/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/nl/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/nl/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From bee9f4ea7fbb9cd606c639428fd5c750e7781022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:40 -0400 Subject: [PATCH 0399/1709] New translations new-chain-integration.mdx (Dutch) --- website/src/pages/nl/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/indexing/new-chain-integration.mdx b/website/src/pages/nl/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/nl/indexing/new-chain-integration.mdx +++ b/website/src/pages/nl/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From d440e65352f533385b944c243f38d8a382751420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:42 -0400 Subject: [PATCH 0400/1709] New translations _meta-titles.json (Dutch) --- website/src/pages/nl/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/substreams/_meta-titles.json b/website/src/pages/nl/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/nl/substreams/_meta-titles.json +++ b/website/src/pages/nl/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 1114c7df0da27c18c6266d098337f89528fdbef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:43 -0400 Subject: [PATCH 0401/1709] New translations faq.mdx (Dutch) --- website/src/pages/nl/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/nl/substreams/sps/faq.mdx diff --git a/website/src/pages/nl/substreams/sps/faq.mdx b/website/src/pages/nl/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/nl/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 7aa87452e85d0c9404c6157695e15f48647b9af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:44 -0400 Subject: [PATCH 0402/1709] New translations introduction.mdx (Dutch) --- .../pages/nl/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/nl/substreams/sps/introduction.mdx diff --git a/website/src/pages/nl/substreams/sps/introduction.mdx b/website/src/pages/nl/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..92d8618165dd --- /dev/null +++ b/website/src/pages/nl/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduction +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Overview + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From c48f32d01340f8a668c4610a7ffba7fc947dbeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:45 -0400 Subject: [PATCH 0403/1709] New translations triggers.mdx (Dutch) --- .../src/pages/nl/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/nl/substreams/sps/triggers.mdx diff --git a/website/src/pages/nl/substreams/sps/triggers.mdx b/website/src/pages/nl/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..66687aa21889 --- /dev/null +++ b/website/src/pages/nl/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Overview + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From d7b1f45bbaf456f1b9d711eb670bb6603b19b304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:46 -0400 Subject: [PATCH 0404/1709] New translations tutorial.mdx (Dutch) --- .../src/pages/nl/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/nl/substreams/sps/tutorial.mdx diff --git a/website/src/pages/nl/substreams/sps/tutorial.mdx b/website/src/pages/nl/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..81c23fae5508 --- /dev/null +++ b/website/src/pages/nl/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Begin + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 837077c80a8ce225db3ab06920c5f52bf17f7c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:47 -0400 Subject: [PATCH 0405/1709] New translations starting-your-subgraph.mdx (Polish) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/pl/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/pl/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/pl/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/pl/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 37845235f6dcabfd40be45b8e1229c17ab3d4667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:50 -0400 Subject: [PATCH 0406/1709] New translations new-chain-integration.mdx (Polish) --- website/src/pages/pl/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/indexing/new-chain-integration.mdx b/website/src/pages/pl/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/pl/indexing/new-chain-integration.mdx +++ b/website/src/pages/pl/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From b16c50c7c8c2021809e8e7d63f2c7cbfcc0737d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:52 -0400 Subject: [PATCH 0407/1709] New translations _meta-titles.json (Polish) --- website/src/pages/pl/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/substreams/_meta-titles.json b/website/src/pages/pl/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/pl/substreams/_meta-titles.json +++ b/website/src/pages/pl/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 3bc37b1408c9a9fa1098e5c5693eba7aef52525e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:53 -0400 Subject: [PATCH 0408/1709] New translations faq.mdx (Polish) --- website/src/pages/pl/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/pl/substreams/sps/faq.mdx diff --git a/website/src/pages/pl/substreams/sps/faq.mdx b/website/src/pages/pl/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/pl/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From a97e2ee89b7c55ef39de24255dfc0926ba2d2cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:54 -0400 Subject: [PATCH 0409/1709] New translations introduction.mdx (Polish) --- .../pages/pl/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/pl/substreams/sps/introduction.mdx diff --git a/website/src/pages/pl/substreams/sps/introduction.mdx b/website/src/pages/pl/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..8c9483eb8feb --- /dev/null +++ b/website/src/pages/pl/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Wstęp +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Overview + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 252f5fab4fd789222ca665816dd5b2cdfae27f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:55 -0400 Subject: [PATCH 0410/1709] New translations triggers.mdx (Polish) --- .../src/pages/pl/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/pl/substreams/sps/triggers.mdx diff --git a/website/src/pages/pl/substreams/sps/triggers.mdx b/website/src/pages/pl/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..66687aa21889 --- /dev/null +++ b/website/src/pages/pl/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Overview + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 60ea9e66db77c1497debb94d1fc66458d6ddd6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:57 -0400 Subject: [PATCH 0411/1709] New translations tutorial.mdx (Polish) --- .../src/pages/pl/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/pl/substreams/sps/tutorial.mdx diff --git a/website/src/pages/pl/substreams/sps/tutorial.mdx b/website/src/pages/pl/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..229b643ecda5 --- /dev/null +++ b/website/src/pages/pl/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Jak zacząć? + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 1cb4175c9dbbf1201f8e645bb4e8aac585b3bd60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:16:58 -0400 Subject: [PATCH 0412/1709] New translations starting-your-subgraph.mdx (Portuguese) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/pt/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/pt/subgraphs/developing/creating/starting-your-subgraph.mdx index e80ca1803b20..2d834dedec0b 100644 --- a/website/src/pages/pt/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/pt/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore mais [recursos para APIs](/subgraphs/developing/creating/graph-ts/README/) e realize testes locais com [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Versão | Notas de atualização | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Versão | Notas de atualização | +| :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 0cd8f6f6c15b1d44d0fe465263eef3b664e0a408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:00 -0400 Subject: [PATCH 0413/1709] New translations unit-testing-framework.mdx (Portuguese) --- .../creating/unit-testing-framework.mdx | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/website/src/pages/pt/subgraphs/developing/creating/unit-testing-framework.mdx b/website/src/pages/pt/subgraphs/developing/creating/unit-testing-framework.mdx index c1676c2773d7..a629d088a34c 100644 --- a/website/src/pages/pt/subgraphs/developing/creating/unit-testing-framework.mdx +++ b/website/src/pages/pt/subgraphs/developing/creating/unit-testing-framework.mdx @@ -1031,7 +1031,7 @@ describe('loadInBlock', () => { assert.stringEquals('gravatarId0', retrievedGravatar!.get('id')!.toString()) }) - test('Retorna null ao chamar entity.loadInBlock() se uma entidade não existir no bloco atual', () => { + test("Retorna null ao chamar entity.loadInBlock() se uma entidade não existir no bloco atual", () => { let retrievedGravatar = Gravatar.loadInBlock('IDoNotExist') assert.assertNull(retrievedGravatar) }) @@ -1376,29 +1376,19 @@ A saída do log inclui a duração do teste. Veja um exemplo: ## Erros comuns do compilador -> -> Critical: Could not create WasmInstance from valid module with context: unknown import: -> wasi_snapshot_preview1::fd_write has not been defined -> +> Critical: Could not create WasmInstance from valid module with context: unknown import: wasi_snapshot_preview1::fd_write has not been defined Isso significa que você usou `console.log` no seu código, que não é apoiado pelo AssemblyScript. Por favor, considere usar a [API de registo](/subgraphs/developing/creating/graph-ts/api/#logging-api) > ERROR TS2554: Expected ? arguments, but got ?. > -> -> return new ethereum.Block(defaultAddressBytes, defaultAddressBytes, defaultAddressBytes, defaultAddress, -> defaultAddressBytes, defaultAddressBytes, defaultAddressBytes, defaultBigInt, defaultBigInt, defaultBigInt, -> defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt); -> +> return new ethereum.Block(defaultAddressBytes, defaultAddressBytes, defaultAddressBytes, defaultAddress, defaultAddressBytes, defaultAddressBytes, defaultAddressBytes, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt, defaultBigInt); > > in ~lib/matchstick-as/assembly/defaults.ts(18,12) > > ERROR TS2554: Expected ? arguments, but got ?. > -> -> return new ethereum.Transaction(defaultAddressBytes, defaultBigInt, defaultAddress, defaultAddress, defaultBigInt, -> defaultBigInt, defaultBigInt, defaultAddressBytes, defaultBigInt); -> +> return new ethereum.Transaction(defaultAddressBytes, defaultBigInt, defaultAddress, defaultAddress, defaultBigInt, defaultBigInt, defaultBigInt, defaultAddressBytes, defaultBigInt); > > in ~lib/matchstick-as/assembly/defaults.ts(24,12) From f142a31c104437b4245d46331d2ea3bee0518150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:02 -0400 Subject: [PATCH 0414/1709] New translations new-chain-integration.mdx (Portuguese) --- website/src/pages/pt/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/indexing/new-chain-integration.mdx b/website/src/pages/pt/indexing/new-chain-integration.mdx index bcaf712fb2cb..b22602fad027 100644 --- a/website/src/pages/pt/indexing/new-chain-integration.mdx +++ b/website/src/pages/pt/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ Para que o Graph Node possa ingerir dados de uma chain EVM, o node RPC deve expo - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, em um pedido conjunto em JSON-RPC -- `trace_filter` *(tracing limitado, e opcionalmente necessário, para o Graph Node)* +- `trace_filter` _(tracing limitado, e opcionalmente necessário, para o Graph Node)_ ### 2. Integração do Firehose From ed29747a0ad7219e0210b364eb59bed64e29d6cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:03 -0400 Subject: [PATCH 0415/1709] New translations _meta-titles.json (Portuguese) --- website/src/pages/pt/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/substreams/_meta-titles.json b/website/src/pages/pt/substreams/_meta-titles.json index dfe7d12bd79a..6f4ecd3a8341 100644 --- a/website/src/pages/pt/substreams/_meta-titles.json +++ b/website/src/pages/pt/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Programação" + "developing": "Programação", + "sps": "Subgraphs movidos por Substreams" } From ba32c951ac9dea184615d8bec19ccdd02ccf1d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:05 -0400 Subject: [PATCH 0416/1709] New translations faq.mdx (Portuguese) --- website/src/pages/pt/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/pt/substreams/sps/faq.mdx diff --git a/website/src/pages/pt/substreams/sps/faq.mdx b/website/src/pages/pt/substreams/sps/faq.mdx new file mode 100644 index 000000000000..9c78ae2c3162 --- /dev/null +++ b/website/src/pages/pt/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: "Perguntas Frequentes: Subgraphs Movidos pelo Substreams" +sidebarTitle: Perguntas Frequentes +--- + +## O que são Substreams? + +O Substreams é um mecanismo de processamento excecionalmente poderoso, capaz de consumir ricos fluxos de dados de blockchain. Ele permite refinar e moldar dados de blockchain, para serem digeridos rápida e continuamente por aplicativos de utilizador final. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +O Substreams é programado pela [StreamingFast](https://www.streamingfast.io/). Para mais informações, visite a [Documentação do Substreams](/substreams/introduction/). + +## O que são subgraphs movidos por Substreams? + +[Subgraphs movidos pelo Substreams](/sps/introduction/) combinam o poder do Substreams com as queries de subgraphs. Ao editar um subgraph movido pelo Substreams, os dados produzidos pelas transformações do Substreams podem [produzir mudanças de entidade](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) compatíveis com entidades de subgraph. + +Se já entende da programação de subgraphs, observe que subgraphs movidos a Substreams podem ser consultados do mesmo jeito que se tivessem sido produzidos pela camada de transformação em AssemblyScript; isso com todos os benefícios do Subgraph, o que inclui uma API GraphQL dinâmica e flexível. + +## Como subgraphs movidos a Substreams diferem de subgraphs? + +Os subgraphs são compostos de fontes de dados que especificam eventos on-chain, e como transformar estes eventos através de handlers escritos em AssemblyScript. Estes eventos são processados em sequência, com base na ordem em que acontecem na chain. + +Por outro lado, subgraphs movidos pelo Substreams têm uma única fonte de dados que referencia um pacote de substreams, processado pelo Graph Node. Substreams têm acesso a mais dados granulares on-chain em comparação a subgraphs convencionais, e também podem se beneficiar de um processamento paralelizado em massa, o que pode diminuir muito a espera do processamento. + +## Quais os benefícios do uso de subgraphs movidos a Substreams? + +Subgraphs movidos a Substreams combinam todos os benefícios do Substreams com o potencial de query de subgraphs. Eles também trazem mais composabilidade e indexações de alto desempenho ao The Graph. Eles também resultam em novos casos de uso de dados; por exemplo, após construir o seu Subgraph movido a Substreams, é possível reutilizar os seus [módulos de Substreams](https://substreams.streamingfast.io/documentation/develop/manifest-modules) para usar [coletores de dados](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) diferentes, como PostgreSQL, MongoDB e Kafka. + +## Quais os benefícios do Substreams? + +Usar o Substreams incorre muitos benefícios, que incluem: + +- Compostável: Você pode empilhar módulos de Substreams como se fossem blocos de LEGO, e construir em cima de módulos da comunidade, para refinar dados públicos. + +- Indexação de alto desempenho: Indexação muito mais rápida através de clusters de larga escala de operações paralelas (como o BigQuery). + +- Colete dados em qualquer lugar: Mergulhe os seus dados onde quiser: PostgreSQL, MongoDB, Kafka, subgraphs, arquivos planos, Google Sheets. + +- Programável: Use códigos para personalizar a extração, realizar agregações de tempo de transformação, e modelar o seu resultado para vários sinks. + +- Acesso a dados tradicionais que não são disponíveis como parte do RPC em JSON + +- Todos os benefícios do Firehose. + +## O que é o Firehose? + +Desenvolvido pela [StreamingFast](https://www.streamingfast.io/), o Firehose é uma camada de extração de dados em blockchain desenhada do zero para processar o histórico completo de blockchains em velocidades nunca antes vistas. Com uma abordagem baseada em arquivos e que dá prioridade a transmissões, ele é um componente central do conjunto de tecnologias de código aberto da StreamingFast, e a fundação do Substreams. + +Confira a [documentação](https://firehose.streamingfast.io/) para aprender mais sobre o Firehose. + +## Quais os benefícios do Firehose? + +Há muitos benefícios do uso do Firehose, que incluem: + +- Latência menor: De forma que prioriza as transmissões, os nodes do Firehouse são desenhados para correrem para revelar os dados do bloco em primeiro lugar. + +- Evita downtimes: Desenhado do zero para Alta Disponibilidade. + +- Não perde nada: O cursor de transmissões do Firehose é desenhado para lidar com forks e continuar de onde você parou em qualquer condição. + +- Modelo rico de dados:  O melhor modelo de dados, que inclui as mudanças de saldo, a árvore de chamadas completa, transações internas, logs, mudanças de armazenamento, custos de gas, e mais. + +- Uso de arquivos planos: Dados de blockchain são extraídos em arquivos planos, o recurso de computação mais barato e otimizado disponível. + +## Onde programadores podem acessar mais informações sobre Substreams e subgraphs movidos a Substreams? + +Para aprender como construir módulos do Substreams, leia a [documentação do Substreams](/substreams/introduction/). + +Para aprender como empacotar subgraphs e implantá-los no The Graph, veja a [documentação sobre subgraphs movidos pelo Substreams](/sps/introduction/). + +A [ferramenta de Codegen no Substreams mais recente](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) permitirá ao programador inicializar um projeto no Substreams sem a necessidade de código. + +## Qual é o papel de módulos em Rust no Substreams? + +Módulos de Rust são o equivalente aos mapeadores em AssemblyScript em subgraphs. Eles são compilados em WASM de forma parecida, mas o modelo de programação permite execuções paralelas. Eles definem a categoria de transformações e agregações que você quer aplicar aos dados de blockchain crus. + +Veja a [documentação dos módulos](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) para mais detalhes. + +## O que faz o Substreams compostável? + +Ao usar o Substreams, a composição é realizada na camada de transformação, permitindo o uso de módulos em cache. + +Como exemplo, Fulana pode construir um módulo de preço de DEX, Sicrano pode usá-lo para construir um agregador de volume para alguns tokens do seu interesse, e Beltrana pode combinar quatro módulos de preço de DEX individuais para criar um oráculo de preço. Um único pedido do Substreams empacotará todos estes módulos e os interligará para oferecer uma transmissão de dados muito mais refinada. Aquela transmissão pode então ser usada para popular um subgraph, e ser consultada pelos consumidores. + +## Como construir e publicar um Subgraph movido a Substreams? + +Após [definir](/sps/introduction/) um subgraph movido pelo Substreams, é possível usar a Graph CLI para implantá-lo no [Subgraph Studio](https://thegraph.com/studio/). + +## Onde posso encontrar exemplos de Substreams e subgraphs movidos a Substreams? + +Você pode visitar [este repositório do Github](https://github.com/pinax-network/awesome-substreams) para encontrar exemplos de Substreams e subgraphs movidos a Substreams. + +## O que Substreams e subgraphs movidos a Substreams significam para a Graph Network? + +A integração promete vários benefícios, incluindo indexações de altíssimo desempenho e mais composabilidade com o uso de módulos de comunidade e construção por cima deles. From 66171e63bcc1974b9c17d25798e036f60f1b7108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:06 -0400 Subject: [PATCH 0417/1709] New translations introduction.mdx (Portuguese) --- .../pages/pt/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/pt/substreams/sps/introduction.mdx diff --git a/website/src/pages/pt/substreams/sps/introduction.mdx b/website/src/pages/pt/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..c355e80d015a --- /dev/null +++ b/website/src/pages/pt/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introudução a Subgraphs Movidos pelo Substreams +sidebarTitle: Introdução +--- + +Melhore a eficiência e a escalabilidade do seu subgraph com o [Substreams](/substreams/introduction/) para transmitir dados pré-indexados de blockchain. + +## Visão geral + +Use um pacote Substreams (`.spkg`) como fonte de dados para que o seu subgraph ganhe acesso a um fluxo de dados de blockchain pré-indexados. Isto resulta num tratamento de dados mais eficiente e escalável, especialmente com redes de blockchain grandes ou complexas. + +### Especificações + +Há dois metodos de ativar esta tecnologia: + +1. **Usar [gatilhos](/sps/triggers/)**: isto importa o modelo do Protobuf via um handler de subgraph, permitindo que o utilizador consuma de qualquer módulo do Substreams e mude toda a sua lógica para um subgraph. Este método cria as entidades diretamente no subgraph. + +2. **[Mudanças de Entidade](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: Ao inserir mais da lógica no Substreams, pode-se alimentar o rendimento do módulo diretamente no [graph-node](/indexing/tooling/graph-node/). No graph-node, os dados do Substreams podem ser usados para criar as entidades do seu subgraph. + +É possível escolher onde colocar a sua lógica, seja no subgraph ou no Substreams. Porém, considere o que supre as suas necessidades de dados; o Substreams tem um modelo paralelizado, e os gatilhos são consumidos de forma linear no graph-node. + +### Outros Recursos + +Visite os seguintes links para ver guias passo-a-passo sobre ferramentas de geração de código, para construir o seu primeiro projeto de ponta a ponta rapidamente: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 0caf004c99e1c5a7fbe715a552b2c182b3db2415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:07 -0400 Subject: [PATCH 0418/1709] New translations triggers.mdx (Portuguese) --- .../src/pages/pt/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/pt/substreams/sps/triggers.mdx diff --git a/website/src/pages/pt/substreams/sps/triggers.mdx b/website/src/pages/pt/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..eafeca1e373f --- /dev/null +++ b/website/src/pages/pt/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Gatilhos do Substreams +--- + +Use Gatilhos Personalizados e ative o uso completo da GraphQL. + +## Visão geral + +Com Gatilhos Personalizados, é possível enviar dados diretamente ao arquivo de mapeamento do seu subgraph e às suas entidades; sendo esses aspetos parecidos com tabelas e campos. Assim, é possível usar a camada da GraphQL livremente. + +Estes dados podem ser recebidos e processados no handler do seu subgraph ao importar as definições do Protobuf emitidas pelo seu módulo do Substreams. Assim, o tratamento de dados na estrutura do subgraph fica mais simples e eficiente. + +### Como definir `handleTransactions` + +O código a seguir demonstra como definir uma função `handleTransactions` num handler de subgraph. Esta função recebe bytes brutos do Substreams como um parâmetro e os descodifica num objeto `Transactions`. Uma nova entidade de subgraph é criada para cada transação. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Você verá isto no arquivo `mappings.ts`: + +1. Os bytes contendo dados do Substreams são descodificados no objeto `Transactions` gerado; este é usado como qualquer outro objeto AssemblyScript +2. Um loop sobre as transações +3. Uma nova entidade de subgraph é criada para cada transação + +Para ver um exemplo detalhado de um subgraph baseado em gatilhos, [clique aqui](/sps/tutorial/). + +### Outros Recursos + +Para estruturar o seu primeiro projeto no Recipiente de Programação, confira [este guia](/substreams/developing/dev-container/). From 116833581236e4a553c8712350f636edd9c048a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:08 -0400 Subject: [PATCH 0419/1709] New translations tutorial.mdx (Portuguese) --- .../src/pages/pt/substreams/sps/tutorial.mdx | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 website/src/pages/pt/substreams/sps/tutorial.mdx diff --git a/website/src/pages/pt/substreams/sps/tutorial.mdx b/website/src/pages/pt/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..3fb6838f7f28 --- /dev/null +++ b/website/src/pages/pt/substreams/sps/tutorial.mdx @@ -0,0 +1,137 @@ +--- +title: "Tutorial: Como Montar um Subgraph Movido a Substreams na Solana" +sidebarTitle: Tutorial +--- + +Configure um subgraph, movido pelo Substreams e baseado em gatilhos, para um token da SPL (Biblioteca de Protocolos da Solana) da Solana. + +## Como Começar + +Para ver um tutorial em vídeo sobre o assunto, [clique aqui](/sps/tutorial/#video-tutorial) + +### Pré-requisitos + +Antes de começar: + +- Complete o [Guia de Introdução](https://github.com/streamingfast/substreams-starter) para montar o seu ambiente de programação com um Recipiente de Programação. +- Familiarize-se com o The Graph e conceitos básicos de blockchain, como transações e Protobufs. + +### Passo 1: Inicialize o Seu Projeto + +1. Para inicializar o seu projeto, abra o seu Recipiente e execute o seguinte comando: + + ```bash + substreams init + ``` + +2. Selecione a opção de projeto "minimal" (mínimo). + +3. Troque os conteúdos do arquivo `substreams.yaml` gerado com a seguinte configuração, que filtra transações para a conta do Orca no ID de programa do token da SPL: + +```yaml +params: # Modifique os parâmetros a seu gosto + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Passo 2: Crie o Manifest do Subgraph + +Com o projeto inicializado, gere um manifest de subgraph com o seguinte comando no Recipiente de Programação: + +```bash +substreams codegen subgraph +``` + +Será gerado um manifest `subgraph.yaml` que importa o pacote do Substreams como uma fonte de dados: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Módulo definido no substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Passo 3: Defina as Entidades em `schema.graphql` + +Para definir os campos a guardar nas suas entidades de subgraph, atualize o arquivo `schema.graphql`. + +Por exemplo: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +Este schema define uma entidade `MyTransfer` com campos como `id`, `amount`, `source`, `designation`, e `signers`. + +### Passo 4: Controle Dados do Substreams no `mappings.ts` + +Com os objetos do Protobuf criados, agora você pode tratar os dados descodificados do Substreams no seu arquivo `mappings.ts` no diretório `./src`. + +O exemplo abaixo demonstra como extrair as transferências não derivadas associadas à id de conta do Orca para entidades de subgraph: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Passo 5: Crie Arquivos de Protobuf + +Para gerar objetos do Protobuf no AssemblyScript, execute: + +```bash +npm run protogen +``` + +Este comando converte as definições do Protobuf em AssemblyScript, permitindo o seu uso no handler do subgraph. + +### Conclusão + +Parabéns! Está montado um subgraph movido a Substreams, baseado em gatilhos, para um token da SPL da Solana. Agora dá para personalizar mais o seu schema, os seus mapeamentos, e os seus módulos de modo que combinem com o seu caso de uso específico. + +### Tutorial em vídeo + + + +### Outros Recursos + +Para otimizações e personalizações mais avançadas, veja a [documentação oficial do Substreams](https://substreams.streamingfast.io/tutorials/solana). From 6a64e6379c93063359797553ce6e327d14447a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:09 -0400 Subject: [PATCH 0420/1709] New translations starting-your-subgraph.mdx (Russian) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/ru/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ru/subgraphs/developing/creating/starting-your-subgraph.mdx index 0103ec85f145..60fcbd1a8dd9 100644 --- a/website/src/pages/ru/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ru/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Версия | Примечания к релизу | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Версия | Примечания к релизу | +| :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 2b9dfad8fda84863ce8bbad29518a6c3f30b9bb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:14 -0400 Subject: [PATCH 0421/1709] New translations _meta-titles.json (Russian) --- website/src/pages/ru/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/substreams/_meta-titles.json b/website/src/pages/ru/substreams/_meta-titles.json index b4353cede681..f5f4e9c18797 100644 --- a/website/src/pages/ru/substreams/_meta-titles.json +++ b/website/src/pages/ru/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Разработка" + "developing": "Разработка", + "sps": "Субграфы, работающие на основе субпотоков (Substreams)" } From 02bd3f3d51af77e84b2632633a28fd238c63eafa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:15 -0400 Subject: [PATCH 0422/1709] New translations faq.mdx (Russian) --- website/src/pages/ru/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/ru/substreams/sps/faq.mdx diff --git a/website/src/pages/ru/substreams/sps/faq.mdx b/website/src/pages/ru/substreams/sps/faq.mdx new file mode 100644 index 000000000000..45edab5a3d00 --- /dev/null +++ b/website/src/pages/ru/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Часто задаваемые вопросы о Субграфах, работающих на основе Субпотоков +sidebarTitle: Часто задаваемые вопросы +--- + +## Что такое субпотоки? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Субграфы, работающие на основе Субпотоков](/sps/introduction/) объединяют мощь Субпотоков с возможностью запросов субграфов. При публикации субграфа, работающего на основе Субпотоков данные, полученные в результате преобразований Субпотоков, могут [генерировать изменения объектов](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs), которые совместимы с объектами субграфа. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Субграфы состоят из источников данных, которые указывают он-чейн события и то, как эти события должны быть преобразованы с помощью обработчиков, написанных на AssemblyScript. Эти события обрабатываются последовательно, в зависимости от того, в каком порядке они происходят он-чейн. + +В отличие от этого, субграфы, работающие на основе Субпотоков имеют один источник данных, который ссылается на пакет Субпотоков, обрабатываемый Graph Node. Субпотоки имеют доступ к дополнительным детализированным данным из он-чейна в отличии от традиционных субграфов, а также могут массово использовать параллельную обработку, что значительно ускоряет время обработки. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## В чем преимущества Субпотоков? + +Использование Субпотоков имеет много преимуществ, в том числе: + +- Компонуемость: Вы можете объединять модули Субпотоков, как блоки LEGO, и опираться на модули сообщества, дополнительно уточняя общедоступные данные. + +- Высокопроизводительное индексирование: индексирование на порядки быстрее благодаря крупномасштабным кластерам параллельных операций (как пример, BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Программируемость: Используйте код для настройки извлечения, выполнения агрегирования во время преобразования и моделирования выходных данных для нескольких приемников. + +- Доступ к дополнительным данным, недоступным в составе JSON RPC + +- Все преимущества Firehose. + +## Что такое Firehose? + +Firehose, разработанный [StreamingFast](https://www.streamingfast.io/), представляет собой уровень извлечения данных блокчейна, разработанный с нуля для обработки полной истории блокчейнов на ранее невиданных скоростях. Обеспечивая подход, основанный на файлах и потоковой передаче, он является основным компонентом пакета технологий Streamingfast с открытым исходным кодом и основой для Субпотоков. + +Перейдите к [documentation](https://firehose.streamingfast.io/), чтобы узнать больше о Firehose. + +## В чем преимущества Firehose? + +Использование Firehose имеет много преимуществ, в том числе: + +- Наименьшая задержка и отсутствие опроса: В режиме потоковой передачи узлы Firehose спроектированы таким образом, чтобы первыми передавать данные блока. + +- Предотвращает простои: Разработан с нуля для обеспечения высокой доступности. + +- Никогда не пропустите ни одного момента: Курсор потока Firehose предназначен для обработки форков и продолжения работы с того места, где Вы остановились, в любых условиях. + +- Богатейшая модель данных:  Лучшая модель данных, которая включает изменения баланса, полное дерево вызовов, внутренние транзакции, логи, изменения в хранилище, затраты на газ и многое другое. + +- Использует плоские файлы: Данные блокчейна извлекаются в плоские файлы — самый дешевый и наиболее оптимизированный доступный вычислительный ресурс. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +Из [документации по Субпотокам](/substreams/introduction/) Вы узнаете, как создавать модули Субпотоков. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +[Новейший инструмент Substreams Codegen](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) позволит Вам загрузить проект Substreams без использования какого-либо кода. + +## Какова роль модулей Rust в Субпотоках? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +Подробную информацию см. в [документации по модулям](https://docs.substreams.dev/reference-material/substreams-components/modules#modules). + +## Что делает Субпотоки компонуемыми? + +При использовании Субпотоков компоновка происходит на уровне преобразования, что позволяет повторно использовать кэшированные модули. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## Как Вы можете создать и развернуть субграф, работающий на основе Субпотоков? + +После [определения](/sps/introduction/) субграфа, работающего на основе Субпотоков, Вы можете использовать Graph CLI для его развертывания в [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +Интеграция обещает множество преимуществ, включая чрезвычайно высокопроизводительную индексацию и большую компонуемость за счет использования модулей сообщества и развития на их основе. From 3f18c8b0e2f10fc85cafb5d95816a24c9906f44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:16 -0400 Subject: [PATCH 0423/1709] New translations introduction.mdx (Russian) --- .../pages/ru/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ru/substreams/sps/introduction.mdx diff --git a/website/src/pages/ru/substreams/sps/introduction.mdx b/website/src/pages/ru/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..d4c5118ad8f6 --- /dev/null +++ b/website/src/pages/ru/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Введение в субграфы, работающие на основе Субпотоков +sidebarTitle: Введение +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Обзор + +Используя пакет Субпотоков (`.spkg`) в качестве источника данных, Ваш субграф получает доступ к потоку предварительно индексированных данных блокчейна. Это позволяет более эффективно и масштабируемо обрабатывать данные, особенно в крупных или сложных блокчейн-сетях. + +### Специфические особенности + +Существует два способа активации этой технологии: + +1. **Использование [триггеров](/sps/triggers/) Субпотоков**: Получайте данные из любого модуля Субпотоков, импортируя Protobuf-модель через обработчик субграфа, и переносите всю логику в субграф. Этот метод создает объекты субграфа непосредственно внутри субграфа. + +2. Использование [Изменений Объектов](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)\*\*: Записывая большую часть логики в Субпотоки, Вы можете напрямую передавать вывод модуля в [graph-node](/indexing/tooling/graph-node/). В graph-node можно использовать данные Субпотоков для создания объектов субграфа. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Дополнительные ресурсы + +Перейдите по следующим ссылкам, чтобы ознакомиться с руководствами по использованию инструментов для генерации кода и быстро создать свой первый проект от начала до конца: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 529b6170bb966bfff25e3a724fb7fa6e1223650f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:17 -0400 Subject: [PATCH 0424/1709] New translations triggers.mdx (Russian) --- .../src/pages/ru/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ru/substreams/sps/triggers.mdx diff --git a/website/src/pages/ru/substreams/sps/triggers.mdx b/website/src/pages/ru/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..3e047577c67a --- /dev/null +++ b/website/src/pages/ru/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Триггеры Субпотоков +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Обзор + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +Следующий код демонстрирует, как определить функцию `handleTransactions` в обработчике субграфа. Эта функция принимает сырые байты Субпотоков в качестве параметра и декодирует их в объект `Transactions`. Для каждой транзакции создается новый объект субграфа. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Вот что Вы видите в файле `mappings.ts`: + +1. Байты, содержащие данные Субпотоков, декодируются в сгенерированный объект `Transactions`. Этот объект используется как любой другой объект на AssemblyScript +2. Итерация по транзакциям (процесс поочерёдного прохода по всем транзакциям для их анализа или обработки) +3. Создание нового объекта субграфа для каждой транзакции + +Чтобы ознакомиться с подробным примером субграфа на основе триггера, [ознакомьтесь с руководством](/sps/tutorial/). + +### Дополнительные ресурсы + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From c83f9850d18b3c5c4abac938e3a1d32fe0268feb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:18 -0400 Subject: [PATCH 0425/1709] New translations tutorial.mdx (Russian) --- .../src/pages/ru/substreams/sps/tutorial.mdx | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 website/src/pages/ru/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ru/substreams/sps/tutorial.mdx b/website/src/pages/ru/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..bc75c6605e24 --- /dev/null +++ b/website/src/pages/ru/substreams/sps/tutorial.mdx @@ -0,0 +1,154 @@ +--- +title: "Руководство: Настройка Субграфа, работающего на основе Субпотоков в сети Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Начнем + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Предварительные требования + +Прежде чем начать, убедитесь, что: + +- Завершили изучение [руководства по началу работы](https://github.com/streamingfast/substreams-starter), чтобы настроить свою среду разработки с использованием контейнера для разработки. +- Ознакомлены с The Graph и основными концепциями блокчейна, такими как транзакции и Protobuf. + +### Шаг 1: Инициализация Вашего проекта + +1. Откройте свой контейнер для разработки и выполните следующую команду для инициализации проекта: + + ```bash + substreams init + ``` + +2. Выберите вариант проекта "minimal". + +3. Замените содержимое сгенерированного файла `substreams.yaml` следующей конфигурацией, которая фильтрует транзакции для аккаунта Orca в идентификаторе программы токенов SPL: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Укажите нужный Вам spkg + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Выберите соответствующие модули, доступные в Вашем spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Измените параметры в соответствии со своими требованиями + # Для program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA: map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Шаг 2: Создание манифеста субграфа + +После инициализации проекта создайте манифест субграфа, выполнив следующую команду в Dev Container: + +```bash +substreams codegen subgraph +``` + +Вы создадите манифест `subgraph.yaml`, который импортирует пакет Субпотоков в качестве источника данных: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Модуль, определенный в substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Шаг 3: Определите объекты в `schema.graphql` + +Определите поля, которые хотите сохранить в объектах субграфа, обновив файл `schema.graphql`. + +Пример: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +Эта схема определяет объект `MyTransfer` с такими полями, как `id`, `amount`, `source`, `designation` и `signers`. + +### Шаг 4: Обработка данных Субпотоков в `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Шаг 5: Сгенерируйте файлы Protobuf + +Чтобы сгенерировать объекты Protobuf в AssemblyScript, выполните следующую команду: + +```bash +npm run protogen +``` + +Эта команда преобразует определения Protobuf в AssemblyScript, позволяя использовать их в обработчике субграфа. + +### Заключение + +Поздравляем! Вы успешно настроили субграф на основе триггеров с поддержкой Субпотоков для токена Solana SPL. Следующий шаг Вы можете сделать, настроив схему, мэппинги и модули в соответствии со своим конкретным вариантом использования. + +### Video Tutorial + + + +### Дополнительные ресурсы + +Для более продвинутой настройки и оптимизации ознакомьтесь с официальной [документацией по Субпотокам](https://substreams.streamingfast.io/tutorials/solana). From 54a5fd33b735c3db4cc6783d233d2c31d7cbeb4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:19 -0400 Subject: [PATCH 0426/1709] New translations starting-your-subgraph.mdx (Swedish) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/sv/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/sv/subgraphs/developing/creating/starting-your-subgraph.mdx index db4c083402f9..3c7846394f04 100644 --- a/website/src/pages/sv/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/sv/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Versionsanteckningar | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Versionsanteckningar | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From 1b408497a2eab30c01c4fb8030c98425d0bf4812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:22 -0400 Subject: [PATCH 0427/1709] New translations new-chain-integration.mdx (Swedish) --- website/src/pages/sv/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/indexing/new-chain-integration.mdx b/website/src/pages/sv/indexing/new-chain-integration.mdx index d8cb301e3902..504940f98a6b 100644 --- a/website/src/pages/sv/indexing/new-chain-integration.mdx +++ b/website/src/pages/sv/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, i en JSON-RPC batch-begäran -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 97fd9acdd8a177dbbe2efd97878cd58955b8db1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:24 -0400 Subject: [PATCH 0428/1709] New translations _meta-titles.json (Swedish) --- website/src/pages/sv/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/substreams/_meta-titles.json b/website/src/pages/sv/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/sv/substreams/_meta-titles.json +++ b/website/src/pages/sv/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From b06da02a6d4fe8302776537d81e0275461acef48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:25 -0400 Subject: [PATCH 0429/1709] New translations faq.mdx (Swedish) --- website/src/pages/sv/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/sv/substreams/sps/faq.mdx diff --git a/website/src/pages/sv/substreams/sps/faq.mdx b/website/src/pages/sv/substreams/sps/faq.mdx new file mode 100644 index 000000000000..e5313465d87c --- /dev/null +++ b/website/src/pages/sv/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## Vad är Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## Vilka fördelar har Substreams? + +Det finns många fördelar med att använda Substreams, inklusive: + +- Sammansättbarhet: Du kan stapla Substreams-moduler som LEGO-block och bygga på gemenskapsmoduler för att ytterligare förädla offentliga data. + +- Högpresterande indexering: Ordervärden snabbare indexering genom storskaliga kluster av parallella operationer (tänk BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmerbarhet: Använd kod för att anpassa extrahering, utföra transformationsbaserade aggregeringar och modellera din utdata för flera sänkar. + +- Tillgång till ytterligare data som inte är tillgänglig som en del av JSON RPC + +- Alla fördelar med Firehose. + +## Vad är Firehose? + +Utvecklat av [StreamingFast](https://www.streamingfast.io/), är Firehose ett blockkedjedata-extraktionslager som är utformat från grunden för att bearbeta blockkedjans fullständiga historik med hastigheter som tidigare inte var skådade. Genom att erbjuda en filbaserad och strömningsorienterad metod är det en kärnkomponent i StreamingFasts svit med öppen källkodstekniker och grunden för Substreams. + +Gå till [documentation](https://firehose.streamingfast.io/) för att lära dig mer om Firehose. + +## Vilka fördelar har Firehose? + +Det finns många fördelar med att använda Firehose, inklusive: + +- Lägsta latens och ingen avfrågning: I en strömningsorienterad stil är Firehose-noderna utformade för att snabbt skicka ut blockdata. + +- Förebygger driftstopp: Designat från grunden för hög tillgänglighet. + +- Missa aldrig en händelse: Firehose-strömmens markör är utformad för att hantera gafflar och att fortsätta där du avslutade under alla förhållanden. + +- Rikaste datamodell:  Bästa datamodell som inkluderar balansändringar, hela anropsträdet, interna transaktioner, loggar, lagringsändringar, gasavgifter och mer. + +- Använder platta filer: Blockkedjedata extraheras till platta filer, den billigaste och mest optimerade datorkällan som finns tillgänglig. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## Vad är rollen för Rust-moduler i Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## Vad gör Substreams sammansättbart? + +Vid användning av Substreams sker sammansättningen på omvandlingsnivån, vilket gör att cachade moduler kan återanvändas. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## Hur kan man bygga och distribuera en Substreams-drivna subgraf? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +Integrationen lovar många fördelar, inklusive extremt högpresterande indexering och ökad sammansättbarhet genom att dra nytta av gemenskapsmoduler och bygga vidare på dem. From d03cddad45bb7a74d4602f538b8823bdef406e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:26 -0400 Subject: [PATCH 0430/1709] New translations introduction.mdx (Swedish) --- .../pages/sv/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/sv/substreams/sps/introduction.mdx diff --git a/website/src/pages/sv/substreams/sps/introduction.mdx b/website/src/pages/sv/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..30e643fff68a --- /dev/null +++ b/website/src/pages/sv/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduktion +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Översikt + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Ytterligare resurser + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From bf8699c994fe15e101f2738dc5ab38294dd70879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:27 -0400 Subject: [PATCH 0431/1709] New translations triggers.mdx (Swedish) --- .../src/pages/sv/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/sv/substreams/sps/triggers.mdx diff --git a/website/src/pages/sv/substreams/sps/triggers.mdx b/website/src/pages/sv/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..77b382a28280 --- /dev/null +++ b/website/src/pages/sv/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Översikt + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Ytterligare resurser + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From d74deb087027d7639e31869f8ae82aff82d1cb68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:28 -0400 Subject: [PATCH 0432/1709] New translations tutorial.mdx (Swedish) --- .../src/pages/sv/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/sv/substreams/sps/tutorial.mdx diff --git a/website/src/pages/sv/substreams/sps/tutorial.mdx b/website/src/pages/sv/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..7d749958f087 --- /dev/null +++ b/website/src/pages/sv/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Komma igång + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Ytterligare resurser + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 6e60edb9e80d26d99ce851e0b11789a0b6c52d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:30 -0400 Subject: [PATCH 0433/1709] New translations starting-your-subgraph.mdx (Turkish) --- .../creating/starting-your-subgraph.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/tr/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/tr/subgraphs/developing/creating/starting-your-subgraph.mdx index bfa4920f6360..2c2d7767abb6 100644 --- a/website/src/pages/tr/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/tr/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Sürüm | Sürüm Notları | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | +| Sürüm | Sürüm Notları | +| :---: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | | 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | İşleyicilerin işlem makbuzlarına erişim desteği eklendi. | -| 0.0.4 | Subgraph özelliklerini yönetme desteği eklendi. | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | İşleyicilerin işlem makbuzlarına erişim desteği eklendi. | +| 0.0.4 | Subgraph özelliklerini yönetme desteği eklendi. | From bd2caf470c5dc8098af7e5e8ac0574a3b4677b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:33 -0400 Subject: [PATCH 0434/1709] New translations new-chain-integration.mdx (Turkish) --- website/src/pages/tr/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/indexing/new-chain-integration.mdx b/website/src/pages/tr/indexing/new-chain-integration.mdx index 07e538ae9bae..9c1cc98a2b5b 100644 --- a/website/src/pages/tr/indexing/new-chain-integration.mdx +++ b/website/src/pages/tr/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ Graph Düğümü'nün bir EVM zincirinden veri alabilmesi için RPC düğümün - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, bir JSON-RPC toplu talebinde -- `trace_filter` *(sınırlı izleme ve isteğe bağlı olarak Graph Düğümü için gerekli olabilir)* +- `trace_filter` _(sınırlı izleme ve isteğe bağlı olarak Graph Düğümü için gerekli olabilir)_ ### 2. Firehose Entegrasyonu From f721aab8b4be1a295835c98164c73db133b54c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:35 -0400 Subject: [PATCH 0435/1709] New translations _meta-titles.json (Turkish) --- website/src/pages/tr/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/substreams/_meta-titles.json b/website/src/pages/tr/substreams/_meta-titles.json index 327533e4f629..877e55ec4e21 100644 --- a/website/src/pages/tr/substreams/_meta-titles.json +++ b/website/src/pages/tr/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Geliştirme" + "developing": "Geliştirme", + "sps": "Substreams destekli Subgraph'ler" } From 0abc536b582e5550f61ab818689bd30b13e23b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:36 -0400 Subject: [PATCH 0436/1709] New translations faq.mdx (Turkish) --- website/src/pages/tr/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/tr/substreams/sps/faq.mdx diff --git a/website/src/pages/tr/substreams/sps/faq.mdx b/website/src/pages/tr/substreams/sps/faq.mdx new file mode 100644 index 000000000000..30401c2c76bd --- /dev/null +++ b/website/src/pages/tr/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## Substreams nedir? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## Substreams'in faydaları nelerdir? + +Substreams kullanmanın birçok faydası vardır, bunlar şunlardır: + +- Birleştirilebilir: Substreams modüllerini LEGO blokları gibi birleştirebilir ve topluluk modüllerine dayanarak açık verileri daha da ayrıntılayabilirsiniz. + +- Yüksek performanslı indeksleme: Büyük ölçekli paralel işlemler sayesinde sıradan işlemlere göre onlarca kat daha hızlı indeksleme sağlar (BigQuery gibi). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programlanabilir: Kod kullanarak çıkarma işlemlerini özelleştirmek, dönüşüm zamanında toplamalar yapmak ve çıktınızı birden çok hedef için modelleyebilirsiniz. + +- JSON RPC'nin parçası olmayan ek verilere erişim sağlar + +- Firehose'un tüm faydalarından yararlanır. + +## Firehose nedir? + +[StreamingFast](https://www.streamingfast.io/) tarafından geliştirilen Firehose, daha önce görülmemiş hızlarda blok zincirinin baştan sona, tam geçmişini işlemek için tasarlanmış bir blok zinciri veri çıkarma katmanıdır. Dosya tabanlı ve akışa odaklı bir yaklaşım sunarak, StreamingFast'in açık kaynaklı teknolojilerinin temel bileşenlerinden biridir ve Substreamler'in temelini oluşturur. + +Firehose hakkında daha fazla bilgi için [documentation](https://firehose.streamingfast.io/) gidin. + +## Firehose'un faydaları nelerdir? + +Firehose kullanmanın birçok faydası vardır, bunlar şunlardır: + +- En düşük gecikme ve sorgulama yok: Akışa odaklı bir şekilde, Firehose düğümleri blok verilerini ilk olarak dışarıya göndermek üzere tasarlanmıştır. + +- Kesintisiz çalışma: Yüksek Erişilebilirlik için baştan sona tasarlanmıştır. + +- Hiçbir şeyi kaçırmaz: Firehose akış imleci, fork durumlarını ele almak ve herhangi bir durumda kaldığınız yerden devam etmek için tasarlanmıştır. + +- En zengin veri modeli: Bakiye değişikliklerini, tam çağrı ağacını, dahili işlemleri, kayıtları, depolama değişikliklerini, gaz maliyetlerini ve daha fazlasını içeren en iyi veri modeli. + +- Düz dosyalardan yararlanma: Blok zinciri verileri düz dosyalara çıkarılır, en ucuz ve en optimize hesaplama kaynağı kullanılır. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +[En son sürüm Substreams Codegen aracı](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6), hiç kod yazmadan bir Substreams projesi başlatmanıza olanak tanır. + +## Rust modüllerinin Substreams içindeki rolü nedir? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## Substreams'i birleştirilebilir yapan nedir? + +Substream kullanırken, kompozisyon dönüşüm katmanında gerçekleşir ve önbelleğe alınmış modüllerin tekrar kullanılmasına olanak sağlar. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## Bir Substreams destekli Subgraph nasıl oluşturulur ve dağıtılır? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +Bu entegrasyon, topluluk modüllerinden yararlanarak son derece yüksek performanslı indeksleme ve daha fazla birleştirme yapma avantajları sunar. From 87e2bde7387c6c0f89d377d958aa05394e967a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:37 -0400 Subject: [PATCH 0437/1709] New translations introduction.mdx (Turkish) --- .../pages/tr/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/tr/substreams/sps/introduction.mdx diff --git a/website/src/pages/tr/substreams/sps/introduction.mdx b/website/src/pages/tr/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..4df56659c9f8 --- /dev/null +++ b/website/src/pages/tr/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Giriş +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Genel Bakış + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Ayrıntılar + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Ek Kaynaklar + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From a51e759f59ac637fe8708ae83b6bb5b5281d4f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:38 -0400 Subject: [PATCH 0438/1709] New translations triggers.mdx (Turkish) --- .../src/pages/tr/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/tr/substreams/sps/triggers.mdx diff --git a/website/src/pages/tr/substreams/sps/triggers.mdx b/website/src/pages/tr/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..648b624258e3 --- /dev/null +++ b/website/src/pages/tr/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Genel Bakış + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Ek Kaynaklar + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 295f03fdd3126111372ad3a6a32f46e73147e66d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:39 -0400 Subject: [PATCH 0439/1709] New translations tutorial.mdx (Turkish) --- .../src/pages/tr/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/tr/substreams/sps/tutorial.mdx diff --git a/website/src/pages/tr/substreams/sps/tutorial.mdx b/website/src/pages/tr/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..50ab98a91a1b --- /dev/null +++ b/website/src/pages/tr/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Başlayalım + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Sonuç + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Ek Kaynaklar + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 7ecb4dfde268af0a01892679703d24489f5a863a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:40 -0400 Subject: [PATCH 0440/1709] New translations starting-your-subgraph.mdx (Ukrainian) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/uk/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/uk/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/uk/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/uk/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From dedbaf266fafc2e7ac1bfd55bcf5602cfff60ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:43 -0400 Subject: [PATCH 0441/1709] New translations new-chain-integration.mdx (Ukrainian) --- website/src/pages/uk/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/indexing/new-chain-integration.mdx b/website/src/pages/uk/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/uk/indexing/new-chain-integration.mdx +++ b/website/src/pages/uk/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From ec0440379267fbe567a95f71c1a1152b08521b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:45 -0400 Subject: [PATCH 0442/1709] New translations _meta-titles.json (Ukrainian) --- website/src/pages/uk/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/substreams/_meta-titles.json b/website/src/pages/uk/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/uk/substreams/_meta-titles.json +++ b/website/src/pages/uk/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From c362f938900568b4fae5cfa9a5246e82f4f9523d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:46 -0400 Subject: [PATCH 0443/1709] New translations faq.mdx (Ukrainian) --- website/src/pages/uk/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/uk/substreams/sps/faq.mdx diff --git a/website/src/pages/uk/substreams/sps/faq.mdx b/website/src/pages/uk/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/uk/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 04ff25c6e66c4eb6e3f8a30d4c8d8744681a4b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:47 -0400 Subject: [PATCH 0444/1709] New translations introduction.mdx (Ukrainian) --- .../pages/uk/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/uk/substreams/sps/introduction.mdx diff --git a/website/src/pages/uk/substreams/sps/introduction.mdx b/website/src/pages/uk/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..8a801f1a048a --- /dev/null +++ b/website/src/pages/uk/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduction +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Overview + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Додаткові матеріали + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From ec867f300e882f86772a62d213da0c5e2ece23e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:49 -0400 Subject: [PATCH 0445/1709] New translations triggers.mdx (Ukrainian) --- .../src/pages/uk/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/uk/substreams/sps/triggers.mdx diff --git a/website/src/pages/uk/substreams/sps/triggers.mdx b/website/src/pages/uk/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..87181f9bd72d --- /dev/null +++ b/website/src/pages/uk/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Overview + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Додаткові матеріали + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 973567763f160b23777dc75f14f745845153b3a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:50 -0400 Subject: [PATCH 0446/1709] New translations tutorial.mdx (Ukrainian) --- .../src/pages/uk/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/uk/substreams/sps/tutorial.mdx diff --git a/website/src/pages/uk/substreams/sps/tutorial.mdx b/website/src/pages/uk/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..86d440eda3f6 --- /dev/null +++ b/website/src/pages/uk/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Розпочати роботу + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Додаткові матеріали + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 795cd96adb4b1b6398ce44ae333207eda203dd7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:51 -0400 Subject: [PATCH 0447/1709] New translations starting-your-subgraph.mdx (Chinese Simplified) --- .../creating/starting-your-subgraph.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/zh/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/zh/subgraphs/developing/creating/starting-your-subgraph.mdx index 60544fa53eaf..3f0f7f96c3cc 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/zh/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ The Graph是数千个子图的所在地,这些子图已经可供查询,因 探索[API的其他资源](/subgraphs/developing/creating/graph-ts/README/),并使用[Matchstick](/subgraphs/developing/creating/unit-testing-framework/)进行本地测试。 -| 版本 | Release 说明 | -| :-: | --- | -| 1.2.0 | 添加了对[索引参数过滤器](/#indexed-argument-filters--topic-filters) 的支持,并声明了`eth_call`。 | -| 1.1.0 | 支持[时间序列和聚合](#timeseries-and-aggregations)。为`id`添加了对`Int8`类型的支持。 | -| 1.0.0 | 支持[`indexerHints`](/developing/creating-a-subgraph/#indexer-hints)功能以修剪子图。 | -| 0.0.9 | 支持`endBlock`功能。 | +| 版本 | Release 说明 | +| :---: | -------------------------------------------------------------------------------------------------------------------------- | +| 1.2.0 | 添加了对[索引参数过滤器](/#indexed-argument-filters--topic-filters) 的支持,并声明了`eth_call`。 | +| 1.1.0 | 支持[时间序列和聚合](#timeseries-and-aggregations)。为`id`添加了对`Int8`类型的支持。 | +| 1.0.0 | 支持[`indexerHints`](/developing/creating-a-subgraph/#indexer-hints)功能以修剪子图。 | +| 0.0.9 | 支持`endBlock`功能。 | | 0.0.8 | 添加了对轮询[块处理程序](/developing/creating-a-subgraph/#polling-filter)和[初始化处理程序](/developing/creating-a-subgraph/#once-filter)的支持。 | -| 0.0.7 | 添加了对[文件数据源](/developing/creating-a-subgraph/#file-data-sources)的支持。 | -| 0.0.6 | 支持快速的[索引证明](/indexing/overview/#what-is-a-proof-of-indexing-poi) 计算变体。 | -| 0.0.5 | 添加了对可以访问交易收据的事件处理程序的支持。 | -| 0.0.4 | 添加了对管理子图功能的支持。 | +| 0.0.7 | 添加了对[文件数据源](/developing/creating-a-subgraph/#file-data-sources)的支持。 | +| 0.0.6 | 支持快速的[索引证明](/indexing/overview/#what-is-a-proof-of-indexing-poi) 计算变体。 | +| 0.0.5 | 添加了对可以访问交易收据的事件处理程序的支持。 | +| 0.0.4 | 添加了对管理子图功能的支持。 | From a359a75889018f80633863c97093767651944130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:53 -0400 Subject: [PATCH 0448/1709] New translations unit-testing-framework.mdx (Chinese Simplified) --- .../zh/subgraphs/developing/creating/unit-testing-framework.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/src/pages/zh/subgraphs/developing/creating/unit-testing-framework.mdx b/website/src/pages/zh/subgraphs/developing/creating/unit-testing-framework.mdx index 0bb085db72c6..4f771efa0934 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/unit-testing-framework.mdx +++ b/website/src/pages/zh/subgraphs/developing/creating/unit-testing-framework.mdx @@ -1371,6 +1371,8 @@ Global test coverage: 22.2% (2/9 handlers). 日志输出包括测试运行持续时间。下面是一个示例: + + ## 常见编译器错误 > 关键:无法从具有背景的有效模块创建WasmInstance:未知导入:wasi_snapshot_preview1::尚未定义fd_write From dbc4536f8083d39d970e1b6dfeefb8b76f07e3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:54 -0400 Subject: [PATCH 0449/1709] New translations new-chain-integration.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/indexing/new-chain-integration.mdx b/website/src/pages/zh/indexing/new-chain-integration.mdx index 3083fd48bdbf..13ecf353d770 100644 --- a/website/src/pages/zh/indexing/new-chain-integration.mdx +++ b/website/src/pages/zh/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ title: 新链整合 - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, 在JSON-RPC批量请求中 -- `trace_filter` *(有限跟踪,图节点可选)* +- `trace_filter` _(有限跟踪,图节点可选)_ ### 2. Firehose整合 From 09d9b577844b77b8c04552197fa47dbc97c5c9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:56 -0400 Subject: [PATCH 0450/1709] New translations _meta-titles.json (Chinese Simplified) --- website/src/pages/zh/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/substreams/_meta-titles.json b/website/src/pages/zh/substreams/_meta-titles.json index 91b4b56a38e6..850c35c59844 100644 --- a/website/src/pages/zh/substreams/_meta-titles.json +++ b/website/src/pages/zh/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "开发" + "developing": "开发", + "sps": "Substreams驱动的子图" } From 6610f43913ed5a65124ca53dba98902b0504590f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:57 -0400 Subject: [PATCH 0451/1709] New translations faq.mdx (Chinese Simplified) --- website/src/pages/zh/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/zh/substreams/sps/faq.mdx diff --git a/website/src/pages/zh/substreams/sps/faq.mdx b/website/src/pages/zh/substreams/sps/faq.mdx new file mode 100644 index 000000000000..6fe73c72b8da --- /dev/null +++ b/website/src/pages/zh/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams驱动的子图的常见问题 +sidebarTitle: 常见问题 +--- + +## 什么是Substreams? + +Substreams是一个非常强大的处理引擎,能够消耗丰富的区块链数据流。它允许您优化和塑造区块链数据,以便最终用户应用程序快速无缝地消化。 + +具体来说,它是一个与区块链无关的、并行化的、流媒体优先的引擎,充当区块链数据转换层。它由[Firehose](https://firehose.streamingfast.io/)提供支持,使开发人员能够编写Rust模块,构建社区模块,提供极高性能的索引,并将数据[存储](/substreams/developing/sinks/) 在任何地方。 + +Substreams由[StreamingFast](https://www.streamingfast.io/)开发。访问[Substreams文档](/substreams/introduction/)以了解有关Substreams的更多信息。 + +## 什么是Substreams驱动的子图? + +[Substreams驱动的子图](/sps/introduction/)结合了Substreams的强大功能和子图的可查询性。发布基于Substreams的子图时,Substreams转换生成的数据可以输出与子图实体兼容的[实体更改](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs)。 + +如果您已经熟悉子图Subgraph开发,那么请注意,Substreams驱动的子图可以被查询,就像它是由AssemblyScript转换层生成的一样。它具有所有子图的优势,比如提供动态和灵活的GraphQL API。 + +## Substreams驱动的子图和普通子图有什么区别? + +子图由数据源组成,这些数据源指定了在链上发生的事件以及通过用Assemblyscript编写的处理程序应如何转换这些事件。这些事件按照链上发生事件的顺序依次进行处理。 + +相比之下,由Substreams驱动的子图具有单一数据源,该数据源引用一个由Graph节点进行处理的Substreams包。与传统的子图相比,Substreams可以访问更多精细的链上数据,并且还可以从大规模并行处理中获益,这可能意味着处理时间更快。 + +## 使用Substeams驱动的子图的优势是什么? + +Substreams驱动的子图结合了Substreams的所有优点和子图的可查询性。它们为The Graph带来了更大的兼容性和高性能索引。它们还支持新的数据用例:例如,一旦构建了基于Substreams的子图,就可以重用[Subreams模块](https://substreams.streamingfast.io/documentation/develop/manifest-modules)输出到不同的[sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink),例如PostgreSQL、MongoDB和Kafka。 + +## Substreams的优势是什么? + +使用Substreams有许多好处,包括: + +- 可组合的: Substreams模块具有可组合性,就像乐高积木一样,您可以将它们堆叠起来,并在社区模块的基础上构建,进一步细化公共数据。 + +- 高性能索引:大规模并行操作(类似于BigQuery)能够使索引速度提升数个数量级。 + +- 任意传输:将您的数据传输到您想要的任何地方:PostgreSQL、MongoDB、Kafka、子图、平面文件、Google Sheets等。 + +- 可编程:使用代码自定义提取、进行转换时聚合,并为多个传输目标建模输出。 + +- 访问不作为JSON RPC的一部分的附加数据。 + +- Firehose的全部好处。 + +## 什么是Firehose? + +Firehose是由[StreamingFast](https://www.streamingfast.io/)开发的区块链数据提取层,从零开始设计,以前所未有的速度处理区块链的完整历史。它提供基于文件和流式优先的方法,是StreamingFast开源技术套件的核心组件,也是Substreams的基础。 + +请访问[documentation](https://firehose.streamingfast.io/),了解更多关于Firehose的信息。 + +## Firehose的优势是什么? + +使用Firehose有许多好处,包括: + +- 最低延迟和无需轮询:Firehose节点以流优先的方式设计,竞相将块数据推送出去。 + +- 防止宕机:从头开始为高可用性而设计。 + +- 不会错过任何数据:Firehose流游标设计用于处理分叉,并在任何情况下都可以继续从上次离开的地方开始。 + +- 最丰富的数据模型:包含余额变化、完整的调用树、内部交易、日志、存储变更、燃气费用等最佳数据模型。 + +- 利用平面文件:将区块链数据提取到平面文件中,这是目前最便宜、最优化的计算资源。 + +## 开发人员在哪里可以获得关于Substreams驱动的子图和Substreams的更多信息? + +[Substreams文档](/substreams/introduction/)将教您如何构建Substreams模块。 + +[Substreams驱动的子图文档](/sps/introduction/)将向您展示如何将它们打包部署在The Graph上。 + +[最新的Substreams Codegen工具](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6)将允许您无需任何代码即可引导Substreams项目。 + +## Rust模块在Substreams中扮演什么角色? + +Rust模块相当于子图中的AssemblyScript映射。它们以类似的方式编译为WASM,但编程模型允许并行执行。它们定义了您想要对原始区块链数据应用的转换和聚合类型。 + +请参阅[模块文档](https://docs.substreams.dev/reference-material/substreams-components/modules#modules)了解详情。 + +## 什么使Substreams具有组合性? + +在使用Substreams时,组合发生在转换层,从而使得缓存模块可以被重复使用。 + +举例来说,Alice可以构建一个DEX价格模块,Bob可以使用它来构建一种感兴趣的代币的交易量集成器,Lisa可以将四个单独的DEX价格模块组合起来创建一个价格预言机。一个单独的Substreams请求将打包所有这些个人模块,并将它们链接在一起,提供一个更加精细的数据流。然后可以使用该数据流填充子图,并由消费者查询。 + +## 如何构建和部署Substreams驱动的子图? + +在[定义](/sps/introduction/) 一个Substreams驱动的子图后,您可以使用Graph CLI在[Subgraph Studio](https://thegraph.com/studio/)中部署它。 + +## 在哪里可以找到Substreams和Substreams驱动的子图的示例? + +您可以访问[此Github repo](https://github.com/pinax-network/awesome-substreams) 以找到Substreams和Substreams-powered子图的示例。 + +## Substreams和Substreams驱动的子图对于The Graph网络意味着什么? + +这种集成带来许多好处,包括通过利用社区模块和在其上构建的组合性来实现极高性能的索引。 From bb867b82fb4dacb9c65b748e37133f47f303ad52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:17:59 -0400 Subject: [PATCH 0452/1709] New translations introduction.mdx (Chinese Simplified) --- .../pages/zh/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/zh/substreams/sps/introduction.mdx diff --git a/website/src/pages/zh/substreams/sps/introduction.mdx b/website/src/pages/zh/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..bb5579cb7b65 --- /dev/null +++ b/website/src/pages/zh/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Substreams驱动子图介绍 +sidebarTitle: 介绍 +--- + +使用 [Substreams](/substreams/introduction/) 流式传输预索引的区块链数据,提高子图的效率和伸缩能力。 + +## 概述 + +通过使用Substreams包(`.spkg`)作为数据源,您的子图可以访问预先索引的区块链数据流。这使得数据处理更加高效和可扩展,特别是在大型或复杂的区块链网络中。 + +### 详情 + +启用此技术有两种方法: + +1. **使用Substreams[触发器](/sps/triggers/)**:通过子图处理程序导入Protobuf模型,从任何Substreams模块中消费,并将所有逻辑移动到子图中。此方法直接在子图中创建子图实体。 + +2. **使用[实体更改](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**:通过将更多的逻辑写入Substreams,您可以将模块的输出直接消耗到[graph节点](/indexing/tooling/graph-node/)中。在graph节点中,可以使用Substreams数据创建子图实体。 + +您可以选择在子图或子流中放置逻辑的位置。但是,考虑一下什么符合您的数据需求,因为Substreams有一个并行化的模型,触发器在graph节点中是线性消耗的。 + +### 其他资源 + +请访问以下教程链接,了解如何使用代码生成工具快速构建您的第一个端到端Substreams项目: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From d0c3c1344f68c5fe7058d3bb07f065f94df38716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:00 -0400 Subject: [PATCH 0453/1709] New translations triggers.mdx (Chinese Simplified) --- .../src/pages/zh/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/zh/substreams/sps/triggers.mdx diff --git a/website/src/pages/zh/substreams/sps/triggers.mdx b/website/src/pages/zh/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..4d57a48348c3 --- /dev/null +++ b/website/src/pages/zh/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams触发器 +--- + +使用自定义触发器并启用完全使用GraphQL。 + +## 概述 + +自定义触发器允许您将数据直接发送到子图映射文件和实体中,这些文件和实体类似于表和字段。这使您能够充分使用GraphQL层。 + +通过导入Substreams模块发出的Protobuf定义,您可以在子图的处理程序中接收和处理这些数据。这确保了子图框架内高效和简化的数据管理。 + +### 定义`处理交易` + +以下代码演示了如何在子图处理程序中定义`handleTransactions`函数。此函数接收原始Substreams字节作为参数,并将其解码为`Transactions`对象。对于每个交易,都会创建一个新的子图实体。 + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +以下是您在`mappings.ts`文件中看到的内容: + +1. 包含Substreams数据的字节被解码为生成的`交易`对象,该对象与任何其他AssemblyScript对象一样使用 +2. 循环交易 +3. 为每笔交易创建一个新的子图实体 + +要查看基于触发器的子图的详细示例,[单击此处](/sps/tutorial/)。 + +### 其他资源 + +要在开发容器中构建你的第一个项目,请查看[操作指南](/substreams/developing/dev-container/)。 From b2d9e87c56eb715dcaec51772147a0178b441728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:01 -0400 Subject: [PATCH 0454/1709] New translations tutorial.mdx (Chinese Simplified) --- .../src/pages/zh/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/zh/substreams/sps/tutorial.mdx diff --git a/website/src/pages/zh/substreams/sps/tutorial.mdx b/website/src/pages/zh/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..c8ca5c967a22 --- /dev/null +++ b/website/src/pages/zh/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: 教程:在Solana上设置基于Substreams的子图 +sidebarTitle: 教程 +--- + +已成功为Solana SPL代币设置基于触发器的Substreams驱动子图。 + +## 开始 + +有关视频教程,请查看[如何使用Substreams驱动的子图对Solana进行索引](/sps/tutorial/#video-tutorial) + +### 先决条件 + +开始之前,请确保: + +- 完成[入门指南](https://github.com/streamingfast/substreams-starter)使用Dev容器设置开发环境。 +- 熟悉The Graph和基本的区块链概念,如交易和Protobuf。 + +### 步骤1:初始化您的项目 + +1. 打开Dev容器并运行以下命令以初始化项目: + + ```bash + substreams init + ``` + +2. 选择“最小”项目选项。 + +3. 将生成的`substreams.yaml`文件的内容替换为以下配置,该配置过滤SPL代币程序ID上Orca帐户的交易: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### 步骤2:生成子图清单 + +项目初始化后,通过在Dev容器中运行以下命令生成子图清单: + +```bash +substreams codegen subgraph +``` + +您将生成`asubgraph.yaml`清单,该清单将Substreams包作为数据源导入: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### 步骤3:在`schema.graphql`中定义实体 + +通过更新`schema.graphql`文件来定义要保存在子图实体中的字段。 + +以下是一个示例: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +此模式定义了一个名为`MyTransfer`的实体,其字段包括 `id`, `amount`, `source`, `designation`, 和`signers`。 + +### 步骤4:在`mappings.ts`中处理Substreams数据 + +生成Protobuf对象后,您现在可以在`./src`目录里找到的`mappings.ts`文件中处理解码的Substreams数据。 + +下面的示例演示了如何将与Orca帐户id关联的非派生传输提取到子图实体中: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### 步骤5:生成Protobuf文件 + +要在AssemblyScript中生成Protobuf对象,请运行以下命令: + +```bash +npm run protogen +``` + +此命令将Protobuf定义转换为AssemblyScript,允许您在子图的处理程序中使用它们。 + +### 结论 + +恭喜!您已成功为Solana SPL代币设置了基于触发器的Substreams驱动子图。现在,您可以进一步定制您的模式、映射和模块,以适应您的特定用例。 + +### 视频教程 + + + +### 其他资源 + +如需更高级的定制和优化,请查看官方[Substreams文档](https://substreams.streamingfast.io/tutorials/solana)。 From c98c6486d495e332e8971efc3c428beba799d471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:02 -0400 Subject: [PATCH 0455/1709] New translations starting-your-subgraph.mdx (Urdu (Pakistan)) --- .../creating/starting-your-subgraph.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ur/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/ur/subgraphs/developing/creating/starting-your-subgraph.mdx index ec107baa126f..6361010625cb 100644 --- a/website/src/pages/ur/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/ur/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| ورزن | جاری کردہ نوٹس | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | +| ورزن | جاری کردہ نوٹس | +| :---: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | | 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From db8bb707048068d37aff160d64a5d0d0ba07e2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:06 -0400 Subject: [PATCH 0456/1709] New translations new-chain-integration.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/indexing/new-chain-integration.mdx b/website/src/pages/ur/indexing/new-chain-integration.mdx index ff1b5b6aa293..e4d231c67e18 100644 --- a/website/src/pages/ur/indexing/new-chain-integration.mdx +++ b/website/src/pages/ur/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From bbe839c59d27a4d9edeb79562043aa3411f46f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:07 -0400 Subject: [PATCH 0457/1709] New translations _meta-titles.json (Urdu (Pakistan)) --- website/src/pages/ur/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/substreams/_meta-titles.json b/website/src/pages/ur/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/ur/substreams/_meta-titles.json +++ b/website/src/pages/ur/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 294c15fead586e93aa2ac7427f5c0a8854bf4ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:08 -0400 Subject: [PATCH 0458/1709] New translations faq.mdx (Urdu (Pakistan)) --- website/src/pages/ur/substreams/sps/faq.mdx | 97 +++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 website/src/pages/ur/substreams/sps/faq.mdx diff --git a/website/src/pages/ur/substreams/sps/faq.mdx b/website/src/pages/ur/substreams/sps/faq.mdx new file mode 100644 index 000000000000..6e45e9abd157 --- /dev/null +++ b/website/src/pages/ur/substreams/sps/faq.mdx @@ -0,0 +1,97 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## سب اسٹریمز کیا ہیں؟ + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## سب سٹریمز کے فوائد کہاں ہیں؟ + +سب سٹریمز کو استعمال کرنے کے بہت سے فوائد ہیں، بشمول: + +- کمپوز ایبل: آپ سب سٹریمز ماڈیولز جیسے LEGO بلاکس کو اسٹیک کر سکتے ہیں، اور عوامی ڈیٹا کو مزید بہتر کرتے ہوئے کمیونٹی ماڈیول بنا سکتے ہیں. + +- اعلی کارکردگی کی انڈیکسنگ: متوازی کارروائیوں کے بڑے پیمانے پر کلسٹرز کے ذریعے تیز تر انڈیکسنگ کے آرڈرز (سوچیں BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- قابل پروگرام: اسے اپنی مرضی کے مطابق بنانے کے لیے کوڈ کریں، دو ٹرانسفارم ٹائم ایگریگیشنز، اور متعدد حواس کے لیے اپنے آؤٹ پٹ کو ماڈل کریں. + +- اضافی ڈیٹا تک رسائی جو JSON RPC کے حصے کے طور پر دستیاب نہیں ہے + +- Firehose کے تمام فوائد. + +## Firehose کیا ہے؟ + +[StreamingFast](https://www.streamingfast.io/) کے ذریعے تیار کردہ، Firehose ایک بلاکچین ڈیٹا نکالنے کی پرت ہے جسے شروع سے بلاکچینز کی مکمل تاریخ کو اس رفتار سے پروسیس کرنے کے لیے ڈیزائن کیا گیا ہے جو پہلے نظر نہیں آتی تھیں۔ فائلوں پر مبنی اور سٹریمنگ فرسٹ اپروچ فراہم کرنا، یہ سٹریمنگ فاسٹ کے اوپن سورس ٹیکنالوجیز کے سوٹ کا بنیادی جزو اور سب اسٹریمز کی بنیاد ہے. + +Firehose کے بارے میں مزید جاننے کے لیے[documentation] +(https://firehose.streamingfast.io/) پر جائیں. + +## Firehose کے کیا فوائد ہیں؟ + +Firehose استعمال کرنے کے بہت سے فوائد ہیں، بشمول: + +- سب سے کم تاخیر اور کوئی پولنگ نہیں: اسٹریمنگ کے پہلے انداز میں، Firehose نوڈس کو پہلے بلاک ڈیٹا کو آگے بڑھانے کی دوڑ کے لیے ڈیزائن کیا گیا ہے. + +- ڈاؤن ٹائمز کو روکتا ہے: اعلی دستیابی کے لیے زمین سے ڈیزائن کیا گیا ہے. + +- کبھی بھی بیٹ مت چھوڑیں: Firehose سٹریم کرسر کو فورکس ہینڈل کرنے اور کسی بھی حالت میں وہیں سے جاری رکھنے کے لیے بنایا گیا ہے جہاں آپ نے چھوڑا تھا. + +- امیرترین ڈیٹا ماڈل: بہترین ڈیٹا ماڈل جس میں بیلنس کی تبدیلیاں، مکمل کال ٹری، اندرونی ٹرانزیکشن، لاگز، اسٹوریج کی تبدیلیاں، گیس کی قیمتیں اور بہت کچھ شامل ہے. + +- فلیٹ فائلوں کا فائدہ اٹھاتا ہے: بلاکچین ڈیٹا کو فلیٹ فائلوں میں نکالا جاتا ہے، جو دستیاب سب سے سستا اور بہترین کمپیوٹنگ وسیلہ ہے. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## سب سٹریمز میں Rust ماڈیولز کا کیا کردار ہے؟ + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## سب سٹریمز کو کمپوز ایبل کیا بناتا ہے؟ + +سب سٹریمز کا استعمال کرتے وقت، کمپوزیشن ٹرانسفارمیشن لیئر پر ہوتی ہے جو کیشڈ ماڈیولز کو دوبارہ استعمال کرنے کے قابل بناتی ہے. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## آپ سب سٹریمز سے چلنے والے سب گراف کو کیسے بنا اور تعینات کر سکتے ہیں؟ + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +انضمام بہت سے فوائد کا وعدہ کرتا ہے، بشمول انتہائی اعلی کارکردگی کی انڈیکسنگ اور کمیونٹی ماڈیولز کا فائدہ اٹھا کر اور ان پر تعمیر کرنے کے ذریعے زیادہ کمپوز ایبلٹی. From c35a3e8ccf83e9d3cedbc3a0b517521cdc5c1af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:10 -0400 Subject: [PATCH 0459/1709] New translations introduction.mdx (Urdu (Pakistan)) --- .../pages/ur/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/ur/substreams/sps/introduction.mdx diff --git a/website/src/pages/ur/substreams/sps/introduction.mdx b/website/src/pages/ur/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..b98518e49e1d --- /dev/null +++ b/website/src/pages/ur/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: تعارف +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## جائزہ + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### اضافی وسائل + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From bd6017d25efbe8ece5256eec0a9e7ea189891503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:11 -0400 Subject: [PATCH 0460/1709] New translations triggers.mdx (Urdu (Pakistan)) --- .../src/pages/ur/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/ur/substreams/sps/triggers.mdx diff --git a/website/src/pages/ur/substreams/sps/triggers.mdx b/website/src/pages/ur/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..e1149c68812f --- /dev/null +++ b/website/src/pages/ur/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## جائزہ + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### اضافی وسائل + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From e22b900bd3f7e5f445e485a45be596df3390f734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:12 -0400 Subject: [PATCH 0461/1709] New translations tutorial.mdx (Urdu (Pakistan)) --- .../src/pages/ur/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/ur/substreams/sps/tutorial.mdx diff --git a/website/src/pages/ur/substreams/sps/tutorial.mdx b/website/src/pages/ur/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..2bc33051d492 --- /dev/null +++ b/website/src/pages/ur/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## شروع کریں + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### اضافی وسائل + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From bb5a24103d7fa3967fed10c862c20db13c3e014d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:13 -0400 Subject: [PATCH 0462/1709] New translations starting-your-subgraph.mdx (Vietnamese) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/vi/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/vi/subgraphs/developing/creating/starting-your-subgraph.mdx index 84a5ebbc5d34..ccca7d43804a 100644 --- a/website/src/pages/vi/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/vi/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Phiên bản | Ghi chú phát hành | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Phiên bản | Ghi chú phát hành | +| :-------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From bbb37e30f5c07ba9905c64faf6be61ba169f6bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:16 -0400 Subject: [PATCH 0463/1709] New translations new-chain-integration.mdx (Vietnamese) --- website/src/pages/vi/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/indexing/new-chain-integration.mdx b/website/src/pages/vi/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/vi/indexing/new-chain-integration.mdx +++ b/website/src/pages/vi/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From 4bbc2caf72662ac1002e47a8a52d77eedafe25e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:18 -0400 Subject: [PATCH 0464/1709] New translations _meta-titles.json (Vietnamese) --- website/src/pages/vi/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/substreams/_meta-titles.json b/website/src/pages/vi/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/vi/substreams/_meta-titles.json +++ b/website/src/pages/vi/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 9ef7641a177e1b15cea7c46026dd966f02fad95f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:19 -0400 Subject: [PATCH 0465/1709] New translations faq.mdx (Vietnamese) --- website/src/pages/vi/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/vi/substreams/sps/faq.mdx diff --git a/website/src/pages/vi/substreams/sps/faq.mdx b/website/src/pages/vi/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/vi/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 1e19e946ef177685c8ee06c1d501303bee876786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:20 -0400 Subject: [PATCH 0466/1709] New translations introduction.mdx (Vietnamese) --- .../pages/vi/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/vi/substreams/sps/introduction.mdx diff --git a/website/src/pages/vi/substreams/sps/introduction.mdx b/website/src/pages/vi/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..bd0bb34b8342 --- /dev/null +++ b/website/src/pages/vi/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Giới thiệu +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## Tổng quan + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### Additional Resources + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From dedc18fe6e83d3bc8014c637e2c4b97e3ec1d710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:21 -0400 Subject: [PATCH 0467/1709] New translations triggers.mdx (Vietnamese) --- .../src/pages/vi/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/vi/substreams/sps/triggers.mdx diff --git a/website/src/pages/vi/substreams/sps/triggers.mdx b/website/src/pages/vi/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..41b53829a5e7 --- /dev/null +++ b/website/src/pages/vi/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## Tổng quan + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### Additional Resources + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From c31dc15d3535382cf9d5ecd63642b8be31a5a70a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:22 -0400 Subject: [PATCH 0468/1709] New translations tutorial.mdx (Vietnamese) --- .../src/pages/vi/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/vi/substreams/sps/tutorial.mdx diff --git a/website/src/pages/vi/substreams/sps/tutorial.mdx b/website/src/pages/vi/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..52b2acfbcb82 --- /dev/null +++ b/website/src/pages/vi/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## Bắt đầu + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 50aa090b3a4603e19017c6af050ecd97648893b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:23 -0400 Subject: [PATCH 0469/1709] New translations starting-your-subgraph.mdx (Marathi) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/mr/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/mr/subgraphs/developing/creating/starting-your-subgraph.mdx index daed9ec13c64..8b40bdfde4fc 100644 --- a/website/src/pages/mr/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/mr/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| आवृत्ती | रिलीझ नोट्स | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| आवृत्ती | रिलीझ नोट्स | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From a4cd5e5b7652a1ac4e79b3e22891023ad5688f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:26 -0400 Subject: [PATCH 0470/1709] New translations new-chain-integration.mdx (Marathi) --- website/src/pages/mr/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/indexing/new-chain-integration.mdx b/website/src/pages/mr/indexing/new-chain-integration.mdx index 670e06c752c3..c401fa57b348 100644 --- a/website/src/pages/mr/indexing/new-chain-integration.mdx +++ b/website/src/pages/mr/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ For Graph Node to be able to ingest data from an EVM chain, the RPC node must ex - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(limited tracing and optionally required for Graph Node)* +- `trace_filter` _(limited tracing and optionally required for Graph Node)_ ### 2. Firehose Integration From faf23581c3240a31e60ba718365b67d9c07686c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:28 -0400 Subject: [PATCH 0471/1709] New translations _meta-titles.json (Marathi) --- website/src/pages/mr/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/substreams/_meta-titles.json b/website/src/pages/mr/substreams/_meta-titles.json index 6262ad528c3a..b8799cc89251 100644 --- a/website/src/pages/mr/substreams/_meta-titles.json +++ b/website/src/pages/mr/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "Developing" + "developing": "Developing", + "sps": "Substreams-powered Subgraphs" } From 5ddee7bf0b69044c27c6f02a2af59e8f030d8196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:29 -0400 Subject: [PATCH 0472/1709] New translations faq.mdx (Marathi) --- website/src/pages/mr/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/mr/substreams/sps/faq.mdx diff --git a/website/src/pages/mr/substreams/sps/faq.mdx b/website/src/pages/mr/substreams/sps/faq.mdx new file mode 100644 index 000000000000..250c466d5929 --- /dev/null +++ b/website/src/pages/mr/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: Substreams-Powered Subgraphs FAQ +sidebarTitle: FAQ +--- + +## What are Substreams? + +Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications. + +Specifically, it's a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It's powered by [Firehose](https://firehose.streamingfast.io/), and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and [sink](/substreams/developing/sinks/) their data anywhere. + +Substreams is developed by [StreamingFast](https://www.streamingfast.io/). Visit the [Substreams Documentation](/substreams/introduction/) to learn more about Substreams. + +## What are Substreams-powered Subgraphs? + +[Substreams-powered Subgraphs](/sps/introduction/) combine the power of Substreams with the queryability of Subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) that are compatible with Subgraph entities. + +If you are already familiar with Subgraph development, note that Substreams-powered Subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of Subgraphs, including a dynamic and flexible GraphQL API. + +## How are Substreams-powered Subgraphs different from Subgraphs? + +Subgraphs are made up of datasources which specify onchain events, and how those events should be transformed via handlers written in Assemblyscript. These events are processed sequentially, based on the order in which events happen onchain. + +By contrast, substreams-powered Subgraphs have a single datasource which references a substreams package, which is processed by the Graph Node. Substreams have access to additional granular onchain data compared to conventional Subgraphs, and can also benefit from massively parallelised processing, which can mean much faster processing times. + +## What are the benefits of using Substreams-powered Subgraphs? + +Substreams-powered Subgraphs combine all the benefits of Substreams with the queryability of Subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you've built your Substreams-powered Subgraph, you can reuse your [Substreams modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) to output to different [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) such as PostgreSQL, MongoDB, and Kafka. + +## What are the benefits of Substreams? + +There are many benefits to using Substreams, including: + +- Composable: You can stack Substreams modules like LEGO blocks, and build upon community modules, further refining public data. + +- High-performance indexing: Orders of magnitude faster indexing through large-scale clusters of parallel operations (think BigQuery). + +- Sink anywhere: Sink your data to anywhere you want: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## What are the benefits of the Firehose? + +There are many benefits to using Firehose, including: + +- Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first. + +- Prevents downtimes: Designed from the ground up for High Availability. + +- Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition. + +- Richest data model:  Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more. + +- Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available. + +## Where can developers access more information about Substreams-powered Subgraphs and Substreams? + +The [Substreams documentation](/substreams/introduction/) will teach you how to build Substreams modules. + +The [Substreams-powered Subgraphs documentation](/sps/introduction/) will show you how to package them for deployment on The Graph. + +The [latest Substreams Codegen tool](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) will allow you to bootstrap a Substreams project without any code. + +## What is the role of Rust modules in Substreams? + +Rust modules are the equivalent of the AssemblyScript mappers in Subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data. + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## What makes Substreams composable? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual's modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a Subgraph, and be queried by consumers. + +## How can you build and deploy a Substreams-powered Subgraph? + +After [defining](/sps/introduction/) a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in [Subgraph Studio](https://thegraph.com/studio/). + +## Where can I find examples of Substreams and Substreams-powered Subgraphs? + +You can visit [this Github repo](https://github.com/pinax-network/awesome-substreams) to find examples of Substreams and Substreams-powered Subgraphs. + +## What do Substreams and Substreams-powered Subgraphs mean for The Graph Network? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 319ed57e7f39d2b0b3e1ce3df1dc7ff9918756c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:30 -0400 Subject: [PATCH 0473/1709] New translations introduction.mdx (Marathi) --- .../pages/mr/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/mr/substreams/sps/introduction.mdx diff --git a/website/src/pages/mr/substreams/sps/introduction.mdx b/website/src/pages/mr/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..d22d998dee0d --- /dev/null +++ b/website/src/pages/mr/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction to Substreams-Powered Subgraphs +sidebarTitle: Introduction +--- + +Boost your Subgraph's efficiency and scalability by using [Substreams](/substreams/introduction/) to stream pre-indexed blockchain data. + +## सविश्लेषण + +Use a Substreams package (`.spkg`) as a data source to give your Subgraph access to a stream of pre-indexed blockchain data. This enables more efficient and scalable data handling, especially with large or complex blockchain networks. + +### Specifics + +There are two methods of enabling this technology: + +1. **Using Substreams [triggers](/sps/triggers/)**: Consume from any Substreams module by importing the Protobuf model through a Subgraph handler and move all your logic into a Subgraph. This method creates the Subgraph entities directly in the Subgraph. + +2. **Using [Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out)**: By writing more of the logic into Substreams, you can consume the module's output directly into [graph-node](/indexing/tooling/graph-node/). In graph-node, you can use the Substreams data to create your Subgraph entities. + +You can choose where to place your logic, either in the Subgraph or Substreams. However, consider what aligns with your data needs, as Substreams has a parallelized model, and triggers are consumed linearly in the graph node. + +### अतिरिक्त संसाधने + +Visit the following links for tutorials on using code-generation tooling to build your first end-to-end Substreams project quickly: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 68bd5f00505c176c2e60c54f18a86c125f22acf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:32 -0400 Subject: [PATCH 0474/1709] New translations triggers.mdx (Marathi) --- .../src/pages/mr/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/mr/substreams/sps/triggers.mdx diff --git a/website/src/pages/mr/substreams/sps/triggers.mdx b/website/src/pages/mr/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..df877d792fad --- /dev/null +++ b/website/src/pages/mr/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: Substreams Triggers +--- + +Use Custom Triggers and enable the full use GraphQL. + +## सविश्लेषण + +Custom Triggers allow you to send data directly into your Subgraph mappings file and entities, which are similar to tables and fields. This enables you to fully use the GraphQL layer. + +By importing the Protobuf definitions emitted by your Substreams module, you can receive and process this data in your Subgraph's handler. This ensures efficient and streamlined data management within the Subgraph framework. + +### Defining `handleTransactions` + +The following code demonstrates how to define a `handleTransactions` function in a Subgraph handler. This function receives raw Substreams bytes as a parameter and decodes them into a `Transactions` object. For each transaction, a new Subgraph entity is created. + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +Here's what you're seeing in the `mappings.ts` file: + +1. The bytes containing Substreams data are decoded into the generated `Transactions` object, this object is used like any other AssemblyScript object +2. Looping over the transactions +3. Create a new Subgraph entity for every transaction + +To go through a detailed example of a trigger-based Subgraph, [check out the tutorial](/sps/tutorial/). + +### अतिरिक्त संसाधने + +To scaffold your first project in the Development Container, check out one of the [How-To Guide](/substreams/developing/dev-container/). From 61837c386a4cc5ca4be2e3bfcda33350213a4459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:33 -0400 Subject: [PATCH 0475/1709] New translations tutorial.mdx (Marathi) --- .../src/pages/mr/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/mr/substreams/sps/tutorial.mdx diff --git a/website/src/pages/mr/substreams/sps/tutorial.mdx b/website/src/pages/mr/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..3e89f8c8804d --- /dev/null +++ b/website/src/pages/mr/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "Tutorial: Set Up a Substreams-Powered Subgraph on Solana" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## सुरु करूया + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### Prerequisites + +Before starting, make sure to: + +- Complete the [Getting Started Guide](https://github.com/streamingfast/substreams-starter) to set up your development environment using a Dev Container. +- Be familiar with The Graph and basic blockchain concepts such as transactions and Protobufs. + +### Step 1: Initialize Your Project + +1. Open your Dev Container and run the following command to initialize your project: + + ```bash + substreams init + ``` + +2. Select the "minimal" project option. + +3. Replace the contents of the generated `substreams.yaml` file with the following configuration, which filters transactions for the Orca account on the SPL token program ID: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### Step 2: Generate the Subgraph Manifest + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +substreams codegen subgraph +``` + +You will generate a`subgraph.yaml` manifest which imports the Substreams package as a data source: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### Step 3: Define Entities in `schema.graphql` + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +This schema defines a `MyTransfer` entity with fields such as `id`, `amount`, `source`, `designation`, and `signers`. + +### Step 4: Handle Substreams Data in `mappings.ts` + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### Step 5: Generate Protobuf Files + +To generate Protobuf objects in AssemblyScript, run the following command: + +```bash +npm run protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### Conclusion + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### अतिरिक्त संसाधने + +For more advanced customization and optimizations, check out the official [Substreams documentation](https://substreams.streamingfast.io/tutorials/solana). From 80187e89aa4b657a1f43ded8fb5fee2a464bc381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:34 -0400 Subject: [PATCH 0476/1709] New translations starting-your-subgraph.mdx (Hindi) --- .../creating/starting-your-subgraph.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/pages/hi/subgraphs/developing/creating/starting-your-subgraph.mdx b/website/src/pages/hi/subgraphs/developing/creating/starting-your-subgraph.mdx index 180a343470b1..4931e6b1fd34 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/starting-your-subgraph.mdx +++ b/website/src/pages/hi/subgraphs/developing/creating/starting-your-subgraph.mdx @@ -22,14 +22,14 @@ Start the process and build a Subgraph that matches your needs: Explore additional [resources for APIs](/subgraphs/developing/creating/graph-ts/README/) and conduct local testing with [Matchstick](/subgraphs/developing/creating/unit-testing-framework/). -| Version | Release notes | -| :-: | --- | -| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | -| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | -| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | -| 0.0.9 | Supports `endBlock` feature | -| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | -| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | -| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | -| 0.0.5 | Added support for event handlers having access to transaction receipts. | -| 0.0.4 | Added support for managing subgraph features. | +| Version | Release notes | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1.2.0 | Added support for [Indexed Argument Filtering](/#indexed-argument-filters--topic-filters) & declared `eth_call` | +| 1.1.0 | Supports [Timeseries & Aggregations](#timeseries-and-aggregations). Added support for type `Int8` for `id`. | +| 1.0.0 | Supports [`indexerHints`](/developing/creating-a-subgraph/#indexer-hints) feature to prune Subgraphs | +| 0.0.9 | Supports `endBlock` feature | +| 0.0.8 | Added support for polling [Block Handlers](/developing/creating-a-subgraph/#polling-filter) and [Initialisation Handlers](/developing/creating-a-subgraph/#once-filter). | +| 0.0.7 | Added support for [File Data Sources](/developing/creating-a-subgraph/#file-data-sources). | +| 0.0.6 | Supports fast [Proof of Indexing](/indexing/overview/#what-is-a-proof-of-indexing-poi) calculation variant. | +| 0.0.5 | Added support for event handlers having access to transaction receipts. | +| 0.0.4 | Added support for managing subgraph features. | From fc60b4b00da8544209d1c5e662d1c8f7326f374e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:37 -0400 Subject: [PATCH 0477/1709] New translations unit-testing-framework.mdx (Hindi) --- .../hi/subgraphs/developing/creating/unit-testing-framework.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/developing/creating/unit-testing-framework.mdx b/website/src/pages/hi/subgraphs/developing/creating/unit-testing-framework.mdx index 64ec49930c33..f1f1aacab6ff 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/unit-testing-framework.mdx +++ b/website/src/pages/hi/subgraphs/developing/creating/unit-testing-framework.mdx @@ -35,7 +35,7 @@ yarn add --dev matchstick-as brew install postgresql ``` -यहां तक कि नवीनतम libpq.5.lib\_ का एक symlink बनाएं। आपको पहले यह dir बनाने की आवश्यकता हो सकती है: `/usr/local/opt/postgresql/lib/` +यहां तक कि नवीनतम libpq.5.lib_ का एक symlink बनाएं। आपको पहले यह dir बनाने की आवश्यकता हो सकती है: `/usr/local/opt/postgresql/lib/` ```sh ln -sf /usr/local/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/opt/postgresql/lib/libpq.5.dylib From 2b35e3496e2a7880aff5d7f34ab9ef1f464cc6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:38 -0400 Subject: [PATCH 0478/1709] New translations new-chain-integration.mdx (Hindi) --- website/src/pages/hi/indexing/new-chain-integration.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/indexing/new-chain-integration.mdx b/website/src/pages/hi/indexing/new-chain-integration.mdx index 1863ea5fa2bc..f9fa6a3e209d 100644 --- a/website/src/pages/hi/indexing/new-chain-integration.mdx +++ b/website/src/pages/hi/indexing/new-chain-integration.mdx @@ -25,7 +25,7 @@ Graph Node को EVM चेन से डेटा इन्गेस्ट क - `eth_getBlockByHash` - `net_version` - `eth_getTransactionReceipt`, in a JSON-RPC batch request -- `trace_filter` *(सीमित ट्रेसिंग और विकल्पतः Graph Node के लिए आवश्यक)* +- `trace_filter` _(सीमित ट्रेसिंग और विकल्पतः Graph Node के लिए आवश्यक)_ ### 2. Firehose एकीकरण @@ -55,7 +55,7 @@ JSON-RPC और Firehose दोनों ही सबग्राफ के ल ## Graph Node Configuration -ग्राफ-नोड को कॉन्फ़िगर करना उतना ही आसान है जितना कि अपने स्थानीय वातावरण को तैयार करना। एक बार जब आपका स्थानीय वातावरण सेट हो जाता है, तो आप स्थानीय रूप से एक सबग्राफ को तैनात करके एकीकरण का परीक्षण कर सकते हैं। +ग्राफ-नोड को कॉन्फ़िगर करना उतना ही आसान है जितना कि अपने स्थानीय वातावरण को तैयार करना। एक बार जब आपका स्थानीय वातावरण सेट हो जाता है, तो आप स्थानीय रूप से एक सबग्राफ को तैनात करके एकीकरण का परीक्षण कर सकते हैं। 1. [Clone Graph Node](https://github.com/graphprotocol/graph-node) From 37e21dd1826f74f76b5e5a9ba0b18f3ec4b27441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:40 -0400 Subject: [PATCH 0479/1709] New translations _meta-titles.json (Hindi) --- website/src/pages/hi/substreams/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/substreams/_meta-titles.json b/website/src/pages/hi/substreams/_meta-titles.json index 83856f5ffbb5..468ba823a2ab 100644 --- a/website/src/pages/hi/substreams/_meta-titles.json +++ b/website/src/pages/hi/substreams/_meta-titles.json @@ -1,3 +1,4 @@ { - "developing": "विकसित करना" + "developing": "विकसित करना", + "sps": "सबस्ट्रीम-संचालित सबग्राफ की सेवा" } From 89edef2f9ac561b3369116f1a0262fc7868d1bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:41 -0400 Subject: [PATCH 0480/1709] New translations faq.mdx (Hindi) --- website/src/pages/hi/substreams/sps/faq.mdx | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 website/src/pages/hi/substreams/sps/faq.mdx diff --git a/website/src/pages/hi/substreams/sps/faq.mdx b/website/src/pages/hi/substreams/sps/faq.mdx new file mode 100644 index 000000000000..1351b52c67a9 --- /dev/null +++ b/website/src/pages/hi/substreams/sps/faq.mdx @@ -0,0 +1,96 @@ +--- +title: सबस्ट्रीम्स-पावर्ड सबग्राफ FAQ +sidebarTitle: FAQ +--- + +## सबस्ट्रीम क्या होते हैं? + +सबस्ट्रीम एक अत्यधिक शक्तिशाली प्रोसेसिंग इंजन है जो ब्लॉकचेन डेटा की समृद्ध स्ट्रीम्स को उपभोग करने में सक्षम है। यह आपको ब्लॉकचेन डेटा को परिष्कृत और आकार देने की अनुमति देता है ताकि एंड-यूजर applications द्वारा इसे तेजी और सहजता से पचाया जा सके। + +यह एक ब्लॉकचेन-अज्ञेयवादी, समानांतरित, और स्ट्रीमिंग-प्रथम इंजन है, जो ब्लॉकचेन डेटा ट्रांसफॉर्मेशन लेयर के रूप में कार्य करता है। यह [Firehose](https://firehose.streamingfast.io/) द्वारा संचालित है और डेवलपर्स को Rust मॉड्यूल लिखने, कम्युनिटी मॉड्यूल्स पर निर्माण करने, बेहद उच्च-प्रदर्शन इंडेक्सिंग प्रदान करने, और अपना डेटा कहीं भी [sink](/substreams/developing/sinks/) करने में सक्षम बनाता है। + +सबस्ट्रीम को [StreamingFast](https://www.streamingfast.io/) द्वारा विकसित किया गया है। सबस्ट्रीम के बारे में अधिक जानने के लिए [सबस्ट्रीम Documentation](/substreams/introduction/) पर जाएं। + +## सबस्ट्रीम-संचालित सबग्राफ क्या हैं? + +[सबस्ट्रीम-powered सबग्राफ](/sps/introduction/)सबस्ट्रीमकी शक्ति को सबग्राफ की queryability के साथ जोड़ते हैं। जब किसी सबस्ट्रीम-powered सबग्राफ को प्रकाशित किया जाता है, तो सबस्ट्रीम परिवर्तनों द्वारा निर्मित डेटा [output entity changes](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/substreams-entity-change/src/tables.rs) उत्पन्न कर सकता है, जो सबग्राफ entities के साथ संगत होते हैं। + +यदि आप पहले से ही सबग्राफ विकास से परिचित हैं, तो ध्यान दें कि सबस्ट्रीम-संचालित सबग्राफ को उसी तरह से क्वेरी किया जा सकता है जैसे कि इसे AssemblyScript ट्रांसफॉर्मेशन लेयर द्वारा उत्पन्न किया गया हो। यह सबग्राफ के सभी लाभ प्रदान करता है, जिसमें एक डायनेमिक और लचीला GraphQL API शामिल है। + +## सबस्ट्रीम-powered सबग्राफ सामान्य सबग्राफ से कैसे भिन्न हैं? + +सबग्राफ डेटा सोर्सेस से बने होते हैं, जो ऑनचेन आयोजन को निर्धारित करते हैं और उन आयोजन को Assemblyscript में लिखे handler के माध्यम से कैसे ट्रांसफॉर्म करना चाहिए। ये आयोजन क्रमवार तरीके से प्रोसेस किए जाते हैं, जिस क्रम में ये आयोजन ऑनचेन होते हैं। + +By contrast, सबस्ट्रीम-powered सबग्राफ के पास एक ही datasource होता है जो एक सबस्ट्रीम package को संदर्भित करता है, जिसे ग्राफ नोड द्वारा प्रोसेस किया जाता है। सबस्ट्रीम को पारंपरिक सबग्राफ की तुलना में अतिरिक्त विस्तृत ऑनचेन डेटा तक पहुंच प्राप्त होती है, और यह बड़े पैमाने पर समानांतर प्रोसेसिंग से भी लाभ उठा सकते हैं, जिससे प्रोसेसिंग समय काफी तेज़ हो सकता है। + +## सबस्ट्रीम- powered सबग्राफ के उपयोग के लाभ क्या हैं? + +सबस्ट्रीम-powered सबग्राफ सभी लाभों को एक साथ लाते हैं जो सबस्ट्रीम और सबग्राफ प्रदान करते हैं। वे अधिक संयोजनशीलता और उच्च-प्रदर्शन इंडेक्सिंग को The Graph में लाते हैं। वे नए डेटा उपयोग के मामलों को भी सक्षम बनाते हैं; उदाहरण के लिए, एक बार जब आपने अपना सबस्ट्रीम-powered सबग्राफ बना लिया, तो आप अपने [सबस्ट्रीम modules](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) को पुन: उपयोग कर सकते हैं ताकि विभिन्न [sinks](https://substreams.streamingfast.io/reference-and-specs/manifests#sink) जैसे कि PostgreSQL, MongoDB, और Kafka में आउटपुट किया जा सके। + +## Substream के क्या benefit हैं? + +Substream का उपयोग करने के कई benefit हैं, जिनमें: + +- Composable: आप Substreams modules को LEGO blocks की तरह stack कर सकते हैं, और community module पर निर्माण करके public data को अधिक refining कर कते हैं। + +- High-performance indexing: बड़े पैमाने पर parallel operation के विशाल संगठनों के माध्यम से कई गुना तेज़ सूचीकरण (think BigQuery). + +- Sink anywhere: अपना डेटा कहीं भी सिंक करें: PostgreSQL, MongoDB, Kafka, Subgraphs, flat files, Google Sheets. + +- Programmable: Use code to customize extraction, do transformation-time aggregations, and model your output for multiple sinks. + +- Access to additional data which is not available as part of the JSON RPC + +- All the benefits of the Firehose. + +## What is the Firehose? + +Developed by [StreamingFast](https://www.streamingfast.io/), the Firehose is a blockchain data extraction layer designed from scratch to process the full history of blockchains at speeds that were previously unseen. Providing a files-based and streaming-first approach, it is a core component of StreamingFast's suite of open-source technologies and the foundation for Substreams. + +Go to the [documentation](https://firehose.streamingfast.io/) to learn more about the Firehose. + +## Firehouse के क्या benefits हैं? + +Firehouse का उपयोग करने के कई benefits हैं, जिनमें: + +- सबसे कम latency और कोई मतदान नहीं: streaming-first fashion में, Firehose nodes को पहले block data को push करने की दौड़ के लिए designed किया गया है। + +- Prevents downtimes: उच्च उपलब्धता के लिए मौलिक रूप से design किया गया है। + +- Never miss a beat: Firehose stream cursor को forks to handle और किसी भी स्थिति में जहां आप छोड़े थे वहां जारी रहने के लिए design किया गया है। + +- Richest data model: Best data model जिसमें balance changes, the full call tree, आंतरिक लेनदेन, logs, storage changes, gas costs और बहुत कुछ शामिल है। + +- Leverages flat files: blockchain data को flat files में निकाला जाता है, जो सबसे सस्ते और सबसे अधिक अनुकूल गणना संसाधन होता है। + +## डेवलपर्स सबस्ट्रीम-powered सबग्राफ और सबस्ट्रीम के बारे में अधिक जानकारी कहाँ प्राप्त कर सकते हैं? + +[सबस्ट्रीम documentation](/substreams/introduction/) आपको सबस्ट्रीम modules बनाने का तरीका सिखाएगी। + +The [सबस्ट्रीम-powered सबग्राफ documentation](/sps/introduction/) आपको यह दिखाएगी कि उन्हें The Graph पर परिनियोजन के लिए कैसे संकलित किया जाए। + +[नवीनतम Substreams Codegen टूल](https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) आपको बिना किसी कोड के एक Substreams प्रोजेक्ट शुरू करने की अनुमति देगा। + +## Substreams में Rust modules का क्या भूमिका है? + +Rust मॉड्यूल्स AssemblyScript मापर्स के समकक्ष होते हैं सबग्राफ में। इन्हें समान तरीके से WASM में संकलित किया जाता है, लेकिन प्रोग्रामिंग मॉडल समानांतर निष्पादन की अनुमति देता है। ये उस प्रकार के रूपांतरण और समुच्चयन को परिभाषित करते हैं, जिन्हें आप कच्चे ब्लॉकचेन डेटा पर लागू करना चाहते हैं। + +See [modules documentation](https://docs.substreams.dev/reference-material/substreams-components/modules#modules) for details. + +## Substreams को composable क्या बनाता है? + +When using Substreams, the composition happens at the transformation layer enabling cached modules to be re-used. + +ऐसे मान लीजिए, एलिस एक DEX प्राइस मॉड्यूल बना सकती है, बॉब इसका उपयोग करके अपने इच्छित कुछ टोकनों के लिए एक वॉल्यूम एग्रीगेटर बना सकता है, और लिसा चार अलग-अलग DEX प्राइस मॉड्यूल को जोड़कर एक प्राइस ओरैकल बना सकती है। एक ही सबस्ट्रीम अनुरोध इन सभी व्यक्तिगत मॉड्यूल्स को एक साथ पैकेज करेगा, उन्हें आपस में लिंक करेगा, और एक अधिक परिष्कृत डेटा स्ट्रीम प्रदान करेगा। उस स्ट्रीम का उपयोग फिर एक सबग्राफ को पॉप्युलेट करने के लिए किया जा सकता है और उपभोक्ताओं द्वारा क्वेरी किया जा सकता है। + +## आप कैसे एक Substreams-powered Subgraph बना सकते हैं और deploy कर सकते हैं? + +सबस्ट्रीम-समर्थित सबग्राफ को [परिभाषित](/sps/introduction/) करने के बाद, आप इसे Graph CLI का उपयोग करके [सबग्राफ Studio](https://thegraph.com/studio/) में डिप्लॉय कर सकते हैं। + +## आप सबस्ट्रीम और सबस्ट्रीम-powered सबग्राफ के उदाहरण कहाँ पा सकते हैं? + +आप [इस Github रिपॉज़िटरी](https://github.com/pinax-network/awesome-substreams) पर जाकर सबस्ट्रीम और सबस्ट्रीम -powered सबग्राफके उदाहरण देख सकते हैं। + +## सबस्ट्रीम और सबस्ट्रीम-powered सबग्राफ का The Graph Network के लिए क्या अर्थ है? + +The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them. From 89a7a004ba520b5fbab1ceb7a549c0550f279422 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:42 -0400 Subject: [PATCH 0481/1709] New translations introduction.mdx (Hindi) --- .../pages/hi/substreams/sps/introduction.mdx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 website/src/pages/hi/substreams/sps/introduction.mdx diff --git a/website/src/pages/hi/substreams/sps/introduction.mdx b/website/src/pages/hi/substreams/sps/introduction.mdx new file mode 100644 index 000000000000..56ee02d1d54a --- /dev/null +++ b/website/src/pages/hi/substreams/sps/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: सबस्ट्रीम-पावर्ड सबग्राफ का परिचय +sidebarTitle: Introduction +--- + +अपने सबग्राफ की कार्यक्षमता और स्केलेबिलिटी को बढ़ाएं [सबस्ट्रीम](/substreams/introduction/) का उपयोग करके, जो प्री-इंडेक्स्ड ब्लॉकचेन डेटा को स्ट्रीम करता है। + +## Overview + +सबस्ट्रीम पैकेज (.spkg) को डेटा स्रोत के रूप में उपयोग करें ताकि आपका सबग्राफ पहले से इंडेक्स किए गए ब्लॉकचेन डेटा की स्ट्रीम तक पहुंच प्राप्त कर सके। यह बड़े या जटिल ब्लॉकचेन नेटवर्क के साथ अधिक कुशल और स्केलेबल डेटा हैंडलिंग को सक्षम बनाता है। + +### विशिष्टताएँ + +इस तकनीक को सक्षम करने के दो तरीके हैं: + +1. **सबस्ट्रीम [triggers](/sps/triggers/) का उपयोग करना**: किसी भी सबस्ट्रीम मॉड्यूल से उपभोग करने के लिए, Protobuf मॉडल को एक सबग्राफ हैंडलर के माध्यम से आयात करें और अपनी पूरी लॉजिक को एक सबग्राफ में स्थानांतरित करें। इस विधि से Subgraph में सीधे सबग्राफ entities बनाई जाती हैं। + +2. **[Entity Changes](https://docs.substreams.dev/how-to-guides/sinks/subgraph/graph-out) का उपयोग करके**: अधिक लॉजिक को सबस्ट्रीम में लिखकर, आप सीधे मॉड्यूल के आउटपुट को [`ग्राफ-नोड`](/indexing/tooling/graph-node/) में कंज्यूम कर सकते हैं। graph-node में, आप सबस्ट्रीम डेटा का उपयोग करके अपनी सबग्राफ entities बना सकते हैं। + +आप अपना लॉजिक सबग्राफ या सबस्ट्रीम में कहीं भी रख सकते हैं। हालाँकि, अपने डेटा की आवश्यकताओं के अनुसार निर्णय लें, क्योंकि सबस्ट्रीम एक समानांतर मॉडल का उपयोग करता है, और ट्रिगर `graph node` में रैखिक रूप से उपभोग किए जाते हैं। + +### Additional Resources + +इन लिंक पर जाएं ताकि आप कोड-जनरेशन टूलिंग का उपयोग करके अपना पहला एंड-टू-एंड सबस्ट्रीम प्रोजेक्ट तेजी से बना सकें: + +- [Solana](/substreams/developing/solana/transactions/) +- [EVM](https://docs.substreams.dev/tutorials/intro-to-tutorials/evm) +- [Starknet](https://docs.substreams.dev/tutorials/intro-to-tutorials/starknet) +- [Injective](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/injective) +- [MANTRA](https://docs.substreams.dev/tutorials/intro-to-tutorials/on-cosmos/mantra) +- [Stellar](https://docs.substreams.dev/tutorials/intro-to-tutorials/stellar) From 5ec239992b26587572d9a72d1d821350796b52b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:43 -0400 Subject: [PATCH 0482/1709] New translations triggers.mdx (Hindi) --- .../src/pages/hi/substreams/sps/triggers.mdx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 website/src/pages/hi/substreams/sps/triggers.mdx diff --git a/website/src/pages/hi/substreams/sps/triggers.mdx b/website/src/pages/hi/substreams/sps/triggers.mdx new file mode 100644 index 000000000000..196694448b05 --- /dev/null +++ b/website/src/pages/hi/substreams/sps/triggers.mdx @@ -0,0 +1,47 @@ +--- +title: सबस्ट्रीम्स ट्रिगर्स +--- + +कस्टम ट्रिगर्स का उपयोग करें और पूर्ण रूप से GraphQL को सक्षम करें। + +## Overview + +कस्टम ट्रिगर्स आपको डेटा सीधे आपके सबग्राफ मैपिंग फ़ाइल और entities में भेजने की अनुमति देते हैं, जो तालिकाओं और फ़ील्ड्स के समान होते हैं। इससे आप पूरी तरह से GraphQL लेयर का उपयोग कर सकते हैं। + +आपके सबस्ट्रीम मॉड्यूल द्वारा उत्पन्न Protobuf परिभाषाओं को आयात करके, आप इस डेटा को अपने सबग्राफ के handler में प्राप्त और प्रोसेस कर सकते हैं। यह सबग्राफ ढांचे के भीतर कुशल और सुव्यवस्थित डेटा प्रबंधन सुनिश्चित करता है। + +### `handleTransactions` को परिभाषित करना + +यह कोड एक सबग्राफ handler में `handleTransactions` फ़ंक्शन को परिभाषित करने का तरीका दर्शाता है। यह फ़ंक्शन कच्चे सबस्ट्रीम बाइट्स को पैरामीटर के रूप में प्राप्त करता है और उन्हें `Transactions` ऑब्जेक्ट में डिकोड करता है। प्रत्येक लेन-देन के लिए, एक नया सबग्राफ entity बनाया जाता है। + +```tsx +export function handleTransactions(bytes: Uint8Array): void { + let transactions = assembly.eth.transaction.v1.Transactions.decode(bytes.buffer).transactions // 1. + if (transactions.length == 0) { + log.info('No transactions found', []) + return + } + + for (let i = 0; i < transactions.length; i++) { + // 2. + let transaction = transactions[i] + + let entity = new Transaction(transaction.hash) // 3. + entity.from = transaction.from + entity.to = transaction.to + entity.save() + } +} +``` + +यहाँ आप `mappings.ts` फ़ाइल में जो देख रहे हैं: + +1. Substreams डेटा को जनरेट किए गए Transactions ऑब्जेक्ट में डिकोड किया जाता है, यह ऑब्जेक्ट किसी अन्य AssemblyScript ऑब्जेक्ट की तरह उपयोग किया जाता है। +2. लेनदेन पर लूप करना +3. यहाँ आप `mappings.ts` फ़ाइल में जो देख रहे हैं: + +एक ट्रिगर-आधारित सबग्राफ का विस्तृत उदाहरण देखने के लिए, [इस ट्यूटोरियल को देखें](/sps/tutorial/)। + +### Additional Resources + +अपने पहले प्रोजेक्ट को डेवलपमेंट कंटेनर में स्कैफोल्ड करने के लिए, इनमें से किसी एक [How-To Guide](/substreams/developing/dev-container/) को देखें। From f29a0c363a934ee39764eefa15bf87b6eb9f512c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 29 Apr 2025 18:18:45 -0400 Subject: [PATCH 0483/1709] New translations tutorial.mdx (Hindi) --- .../src/pages/hi/substreams/sps/tutorial.mdx | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 website/src/pages/hi/substreams/sps/tutorial.mdx diff --git a/website/src/pages/hi/substreams/sps/tutorial.mdx b/website/src/pages/hi/substreams/sps/tutorial.mdx new file mode 100644 index 000000000000..18d38dc06938 --- /dev/null +++ b/website/src/pages/hi/substreams/sps/tutorial.mdx @@ -0,0 +1,155 @@ +--- +title: "ट्यूटोरियल: Solana पर एक Substreams-शक्ति वाले Subgraph सेट करें" +sidebarTitle: Tutorial +--- + +Successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. + +## शुरू करिये + +For a video tutorial, check out [How to Index Solana with a Substreams-powered Subgraph](/sps/tutorial/#video-tutorial) + +### आवश्यक शर्तें + +'शुरू करने से पहले, सुनिश्चित करें कि:' + +- अपने विकास पर्यावरण को सेट अप करने के लिए Getting Started Guide(https://github.com/streamingfast/substreams-starter) को पूरा करें, एक Dev Container का उपयोग करके। +- The Graph और मूल ब्लॉकचेन अवधारणाओं जैसे कि लेनदेन और Protobufs से परिचित रहें। + +### चरण 1: अपने प्रोजेक्ट को प्रारंभ करें + +1. अपने Dev Container को खोलें और अपने प्रोजेक्ट को शुरू करने के लिए निम्नलिखित कमांड चलाएं: + + ```bash + substreams प्रारंभ करें + ``` + +2. "Minimal" प्रोजेक्ट विकल्प चुनें। + +3. substreams.yaml फ़ाइल की सामग्री को निम्नलिखित कॉन्फ़िगरेशन से बदलें, जो SPL टोकन प्रोग्राम आईडी पर Orca अकाउंट के लेनदेन को फ़िल्टर करता है: + +```yaml +specVersion: v0.1.0 +package: + name: my_project_sol + version: v0.1.0 + +imports: # Pass your spkg of interest + solana: https://github.com/streamingfast/substreams-solana-spl-token/raw/master/tokens/solana-spl-token-v0.1.0.spkg + +modules: + - name: map_spl_transfers + use: solana:map_block # Select corresponding modules available within your spkg + initialBlock: 260000082 + + - name: map_transactions_by_programid + use: solana:solana:transactions_by_programid_without_votes + +network: solana-mainnet-beta + +params: # Modify the param fields to meet your needs + # For program_id: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA + map_spl_transfers: token_contract:orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE +``` + +### चरण 2: Subgraph Manifest उत्पन्न करें + +Once the project is initialized, generate a Subgraph manifest by running the following command in the Dev Container: + +```bash +'सबस्ट्रीम्स कोडजेन' subgraph +``` + +आप subgraph.yaml मैनिफेस्ट बनाएंगे जो डेटा स्रोत के रूप में Substreams पैकेज को इम्पोर्ट करता है: + +```yaml +--- +dataSources: + - kind: substreams + name: my_project_sol + network: solana-mainnet-beta + source: + package: + moduleName: map_spl_transfers # Module defined in the substreams.yaml + file: ./my-project-sol-v0.1.0.spkg + mapping: + apiVersion: 0.0.9 + kind: substreams/graph-entities + file: ./src/mappings.ts + handler: handleTriggers +``` + +### चरण 3: schema.graphql में संस्थाएँ परिभाषित करें + +Define the fields you want to save in your Subgraph entities by updating the `schema.graphql` file. + +Here is an example: + +```graphql +type MyTransfer @entity { + id: ID! + amount: String! + source: String! + designation: String! + signers: [String!]! +} +``` + +यह स्कीमा एक MyTransfer एंटिटी को परिभाषित करता है जिसमें फ़ील्ड्स जैसे कि id, amount, source, designation, और signers शामिल हैं। + +### चरण 4: mappings.ts में Substreams डेटा को संभालें + +With the Protobuf objects generated, you can now handle the decoded Substreams data in your `mappings.ts` file found in the `./src` directory. + +The example below demonstrates how to extract to Subgraph entities the non-derived transfers associated to the Orca account id: + +```ts +import { Protobuf } from 'as-proto/assembly' +import { Events as protoEvents } from './pb/sf/solana/spl/token/v1/Events' +import { MyTransfer } from '../generated/schema' + +export function handleTriggers(bytes: Uint8Array): void { + const input: protoEvents = Protobuf.decode(bytes, protoEvents.decode) + + for (let i = 0; i < input.data.length; i++) { + const event = input.data[i] + + if (event.transfer != null) { + let entity_id: string = `${event.txnId}-${i}` + const entity = new MyTransfer(entity_id) + entity.amount = event.transfer!.instruction!.amount.toString() + entity.source = event.transfer!.accounts!.source + entity.designation = event.transfer!.accounts!.destination + + if (event.transfer!.accounts!.signer!.single != null) { + entity.signers = [event.transfer!.accounts!.signer!.single!.signer] + } else if (event.transfer!.accounts!.signer!.multisig != null) { + entity.signers = event.transfer!.accounts!.signer!.multisig!.signers + } + entity.save() + } + } +} +``` + +### चरण 5: Protobuf फ़ाइलें उत्पन्न करें + +AssemblyScript में Protobuf ऑब्जेक्ट बनाने के लिए, निम्नलिखित कमांड चलाएँ: + +```bash +npm चलाएँ protogen +``` + +This command converts the Protobuf definitions into AssemblyScript, allowing you to use them in the Subgraph's handler. + +### निष्कर्ष + +Congratulations! You've successfully set up a trigger-based Substreams-powered Subgraph for a Solana SPL token. You can take the next step by customizing your schema, mappings, and modules to fit your specific use case. + +### Video Tutorial + + + +### Additional Resources + +अधिक उन्नत अनुकूलन और ऑप्टिमाइजेशन के लिए, आधिकारिक Substreams documentation(https://substreams.streamingfast.io/tutorials/solana) देखें। From 09fb2faba045270dbfa033e1de5361d1b11bb9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:07 -0400 Subject: [PATCH 0484/1709] New translations about.mdx (Romanian) --- website/src/pages/ro/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ro/about.mdx b/website/src/pages/ro/about.mdx index 5f554bbb18b1..7fda868aab9d 100644 --- a/website/src/pages/ro/about.mdx +++ b/website/src/pages/ro/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## What is The Graph? -### What is The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) - -## Next Steps - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From a45d6278127fb0d255b360552b9aa2aa96b0dd29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:08 -0400 Subject: [PATCH 0485/1709] New translations about.mdx (French) --- website/src/pages/fr/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/fr/about.mdx b/website/src/pages/fr/about.mdx index 62fd8539f78b..3b1148c8da43 100644 --- a/website/src/pages/fr/about.mdx +++ b/website/src/pages/fr/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Qu’est-ce que The Graph ? -### Qu’est-ce que The Graph ? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Un graphique expliquant comment The Graph utilise Graph Node pour répondre aux requêtes des consommateurs de données](/img/graph-dataflow.png) - -## Les Étapes suivantes - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 1df6f947d3861ed49d5f480e0ec1c5aa7deeca7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:10 -0400 Subject: [PATCH 0486/1709] New translations about.mdx (Spanish) --- website/src/pages/es/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/es/about.mdx b/website/src/pages/es/about.mdx index b04de3e51252..17ffa7c8df83 100644 --- a/website/src/pages/es/about.mdx +++ b/website/src/pages/es/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Que es The Graph? -### Que es The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Un gráfico explicando como The Graph usa Graph Node para servir consultas a los consumidores de datos](/img/graph-dataflow.png) - -## Próximos puntos - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 279005ddce5795e0bd4ef113d402a27bce0e8d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:11 -0400 Subject: [PATCH 0487/1709] New translations about.mdx (Arabic) --- website/src/pages/ar/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ar/about.mdx b/website/src/pages/ar/about.mdx index 67d4ff9a90c2..7fda868aab9d 100644 --- a/website/src/pages/ar/about.mdx +++ b/website/src/pages/ar/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## What is The Graph? -### What is The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) - -## الخطوات التالية - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From aa7759023418df13bc4a80dae65208e081bbd17d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:12 -0400 Subject: [PATCH 0488/1709] New translations about.mdx (Czech) --- website/src/pages/cs/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/cs/about.mdx b/website/src/pages/cs/about.mdx index 5766eb712d13..90620be41ac8 100644 --- a/website/src/pages/cs/about.mdx +++ b/website/src/pages/cs/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Co je Graf? -### Co je Graf? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Grafu vysvětlující, jak Graf používá Uzel grafu k doručování dotazů konzumentům dat](/img/graph-dataflow.png) - -## Další kroky - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 0a72f344d66658fad0e7c51ed5c82410aa5fff9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:14 -0400 Subject: [PATCH 0489/1709] New translations about.mdx (German) --- website/src/pages/de/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/de/about.mdx b/website/src/pages/de/about.mdx index ae3f0e5334af..d644545b115e 100644 --- a/website/src/pages/de/about.mdx +++ b/website/src/pages/de/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Was ist The Graph? -### Was ist The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -Das nachstehende Diagramm enthält detailliertere Informationen über den Datenfluss, nachdem ein Subgraph-Manifest mit Ethereum-Transaktionen bereitgestellt wurde. - -![Eine graphische Darstellung, die erklärt, wie The Graph Graph Node verwendet, um Abfragen an Datenkonsumenten zu stellen](/img/graph-dataflow.png) - -## Nächste Schritte - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From fb4ca5184754158f66d810d6c77e81f19945e6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:15 -0400 Subject: [PATCH 0490/1709] New translations about.mdx (Italian) --- website/src/pages/it/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/it/about.mdx b/website/src/pages/it/about.mdx index 8fc32184b8fd..46674c3384d1 100644 --- a/website/src/pages/it/about.mdx +++ b/website/src/pages/it/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Che cos'è The Graph? -### Che cos'è The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Un grafico che spiega come The Graph utilizza Graph Node per servire le query ai consumatori di dati](/img/graph-dataflow.png) - -## I prossimi passi - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 75fd6ad098fb8cba076f9fa5f9b94b46a4d30f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:16 -0400 Subject: [PATCH 0491/1709] New translations about.mdx (Japanese) --- website/src/pages/ja/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ja/about.mdx b/website/src/pages/ja/about.mdx index d1974b836c32..7487094da17a 100644 --- a/website/src/pages/ja/about.mdx +++ b/website/src/pages/ja/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## とは「ザ・グラフ」 -### とは「ザ・グラフ」 +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![グラフがグラフ ノードを使用してデータ コンシューマーにクエリを提供する方法を説明する図](/img/graph-dataflow.png) - -## 次のステップ - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 33864c00add78a547692b0457af7b9531de77565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:18 -0400 Subject: [PATCH 0492/1709] New translations about.mdx (Korean) --- website/src/pages/ko/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ko/about.mdx b/website/src/pages/ko/about.mdx index 5f554bbb18b1..7fda868aab9d 100644 --- a/website/src/pages/ko/about.mdx +++ b/website/src/pages/ko/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## What is The Graph? -### What is The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) - -## Next Steps - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From ed28f4e061562f4301aac0c5d0b5e6196b46fb11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:19 -0400 Subject: [PATCH 0493/1709] New translations about.mdx (Dutch) --- website/src/pages/nl/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/nl/about.mdx b/website/src/pages/nl/about.mdx index 5f554bbb18b1..7fda868aab9d 100644 --- a/website/src/pages/nl/about.mdx +++ b/website/src/pages/nl/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## What is The Graph? -### What is The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) - -## Next Steps - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 550e911cb64746b4370efc273fb0c5344dddf016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:20 -0400 Subject: [PATCH 0494/1709] New translations about.mdx (Polish) --- website/src/pages/pl/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/pl/about.mdx b/website/src/pages/pl/about.mdx index 61ba107f7b43..bb3abd436340 100644 --- a/website/src/pages/pl/about.mdx +++ b/website/src/pages/pl/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Co to jest The Graph? -### Co to jest The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Grafika wyjaśniająca sposób w jaki protokół The Graph wykorzystuje węzeł Graph Node by obsługiwać zapytania dla konsumentów danych](/img/graph-dataflow.png) - -## Kolejne kroki - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 0a8181b041be2fb2de5d1b16fb33da08521af569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:22 -0400 Subject: [PATCH 0495/1709] New translations about.mdx (Portuguese) --- website/src/pages/pt/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/pt/about.mdx b/website/src/pages/pt/about.mdx index d77b0df8f8bc..8310b7b64cb5 100644 --- a/website/src/pages/pt/about.mdx +++ b/website/src/pages/pt/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## O que é o The Graph? -### O que é o The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Um gráfico que explica como o The Graph utiliza Graph Nodes para servir queries para consumidores de dados](/img/graph-dataflow.png) - -## Próximos Passos - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 6904e96475fdd7a636aa67845f2f137a538f910f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:23 -0400 Subject: [PATCH 0496/1709] New translations about.mdx (Russian) --- website/src/pages/ru/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ru/about.mdx b/website/src/pages/ru/about.mdx index f6ce5dcfc2ec..40f9c5a9fe7b 100644 --- a/website/src/pages/ru/about.mdx +++ b/website/src/pages/ru/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Что такое Graph? -### Что такое Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![График, объясняющий потребителям данных, как The Graph использует Graph Node для обслуживания запросов](/img/graph-dataflow.png) - -## Что далее - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 0613891261b4a95314310540b316b3c13c46375c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:24 -0400 Subject: [PATCH 0497/1709] New translations about.mdx (Swedish) --- website/src/pages/sv/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/sv/about.mdx b/website/src/pages/sv/about.mdx index 0107ba23af82..81da2a23e001 100644 --- a/website/src/pages/sv/about.mdx +++ b/website/src/pages/sv/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Vad är The Graph? -### Vad är The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![En grafik som förklarar hur The Graf använder Graf Node för att servera frågor till datakonsumenter](/img/graph-dataflow.png) - -## Nästa steg - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 231dbfd53335e2050095f5412ef1f5ee6f4b76e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:25 -0400 Subject: [PATCH 0498/1709] New translations about.mdx (Turkish) --- website/src/pages/tr/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/tr/about.mdx b/website/src/pages/tr/about.mdx index 3a45ddfae492..7913b9a3c8c7 100644 --- a/website/src/pages/tr/about.mdx +++ b/website/src/pages/tr/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## The Graph Nedir? -### The Graph Nedir? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![The Graph'in, Graph Düğümü'nü kullanarak veri tüketicilerine sorgu sunma sürecini açıklayan bir grafik](/img/graph-dataflow.png) - -## Sonraki Adımlar - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 390a31ed971e195db1c674e738c2b60228ec3e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:27 -0400 Subject: [PATCH 0499/1709] New translations about.mdx (Ukrainian) --- website/src/pages/uk/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/uk/about.mdx b/website/src/pages/uk/about.mdx index 523dfadf84ea..f2a44edf3ee2 100644 --- a/website/src/pages/uk/about.mdx +++ b/website/src/pages/uk/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## Що таке The Graph? -### Що таке The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![Малюнок, що пояснює, як The Graph використовує Graph Node для обслуговування запитів до споживачів даних](/img/graph-dataflow.png) - -## Наступні кроки - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 3e72687e3fb2d35af81dca4e9f4b1d436873c7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:28 -0400 Subject: [PATCH 0500/1709] New translations about.mdx (Chinese Simplified) --- website/src/pages/zh/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/zh/about.mdx b/website/src/pages/zh/about.mdx index 97d5bda63989..454a3595a8ce 100644 --- a/website/src/pages/zh/about.mdx +++ b/website/src/pages/zh/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## 什么是 The Graph? -### 什么是 The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -此图提供了部署子图清单后用于处理以太坊交易的数据流的更多细节。 - -![解释The Graph如何使用Graph节点向数据消费者提供查询的图形。](/img/graph-dataflow.png) - -## 下一步 - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [浏览子图](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From f1c7e8747eabb951996fa48a644b1455761065e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:29 -0400 Subject: [PATCH 0501/1709] New translations about.mdx (Urdu (Pakistan)) --- website/src/pages/ur/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/ur/about.mdx b/website/src/pages/ur/about.mdx index 99b8b2874d2a..b29c75fa38a2 100644 --- a/website/src/pages/ur/about.mdx +++ b/website/src/pages/ur/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## گراف کیا ہے؟ -### گراف کیا ہے؟ +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![ایک گرافک یہ بتاتا ہے کہ گراف کس طرح ڈیٹا صارفین کو کیوریز پیش کرنے کے لیے گراف نوڈ کا استعمال کرتا ہے](/img/graph-dataflow.png) - -## اگلے مراحل - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 10191e7e775c9e1babc550fa72e67c56f8d872c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:31 -0400 Subject: [PATCH 0502/1709] New translations about.mdx (Vietnamese) --- website/src/pages/vi/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/vi/about.mdx b/website/src/pages/vi/about.mdx index 78da571b8c29..7fda868aab9d 100644 --- a/website/src/pages/vi/about.mdx +++ b/website/src/pages/vi/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## What is The Graph? -### What is The Graph? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![A graphic explaining how The Graph uses Graph Node to serve queries to data consumers](/img/graph-dataflow.png) - -## Bước tiếp theo - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 9e1628895af117e27bae690142ed5f5f4a8d5ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:32 -0400 Subject: [PATCH 0503/1709] New translations about.mdx (Marathi) --- website/src/pages/mr/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/mr/about.mdx b/website/src/pages/mr/about.mdx index a8534ea1d258..ef64d8bada05 100644 --- a/website/src/pages/mr/about.mdx +++ b/website/src/pages/mr/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## द ग्राफ म्हणजे काय? -### द ग्राफ म्हणजे काय? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![ग्राफिक डेटा ग्राहकांना प्रश्न देण्यासाठी ग्राफ नोड कसा वापरतो हे स्पष्ट करणारे ग्राफिक](/img/graph-dataflow.png) - -## पुढील पायऱ्या - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From bc02969ed457313910b5cdf1143b9e3c72124d77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 08:01:33 -0400 Subject: [PATCH 0504/1709] New translations about.mdx (Hindi) --- website/src/pages/hi/about.mdx | 55 ++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/website/src/pages/hi/about.mdx b/website/src/pages/hi/about.mdx index c4676efea513..a5d65c25b7b4 100644 --- a/website/src/pages/hi/about.mdx +++ b/website/src/pages/hi/about.mdx @@ -3,53 +3,44 @@ title: About The Graph description: This page summarizes the core concepts and basics of The Graph Network. --- -## Explanation +## The Graph क्या है? -### The Graph क्या है? +The Graph is a decentralized protocol for indexing and querying blockchain data across [90+ networks](/supported-networks/). -The Graph is a decentralized protocol for indexing and querying blockchain data. Its suite includes [Subgraphs](/subgraphs/developing/subgraphs/), [Substreams](/substreams/introduction/), [Token API BETA](/token-api/quick-start/), and tools like [Graph Explorer](/subgraphs/explorer/) and [Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/). +Its data services include: -The Graph supports [90+ blockchains](/supported-networks/), enhancing dapp development and data retrieval. +- [Subgraphs](/subgraphs/developing/subgraphs/): Open APIs to query blockchain data that can be created or queried by anyone. +- [Substreams](/substreams/introduction/): High-performance data streams for real-time blockchain processing, built with modular components. +- [Token API Beta](/token-api/quick-start/): Instant access to standardized token data requiring zero setup. -### Why is Blockchain Data Hard to Query? +### Why Blockchain Data is Difficult to Query -Reading onchain data from the blockchain (e.g., ownership history, metadata, relationships between assets) typically requires processing smart contract events, parsing metadata from IPFS, and aggregating data manually. This is very slow, complex, and resource-intensive. +Reading data from blockchains requires processing smart contract events, parsing metadata from IPFS, and manually aggregating data. -## Solution +The result is slow performance, complex infrastructure, and scalability issues. -### How The Graph Solves This +## How The Graph Solves This -The Graph simplifies the complex process of retrieving blockchain data through a global, decentralized network of Indexers that index Subgraphs. This infrastructure facilitates efficient, censorship-resistant query handling, allowing developers to build applications using blockchain data without the hassle of managing servers or custom indexing. +The Graph uses a combination of cutting-edge research, core dev expertise, and independent Indexers to make blockchain data accessible for developers. -Each Subgraph defines: +Find the perfect data service for you: -- Which smart contracts to watch -- Which events to extract -- How to map event data into a queryable format using [GraphQL](https://graphql.org/learn/) +### 1. Custom Real-Time Data Streams -### [Building a Subgraph](/subgraphs/developing/creating/starting-your-subgraph/) +**Use Case:** High-frequency trading, live analytics. -1. Define a [Subgraph Manifest](/subgraphs/developing/creating/subgraph-manifest/) with data sources and mappings. -2. Use [Graph CLI](https://github.com/graphprotocol/graph-tooling/tree/main/packages/cli) to deploy the manifest to IPFS. -3. An [Indexer](/indexing/overview/) picks it up and starts indexing Ethereum blocks. -4. Data becomes queryable via a [GraphQL endpoint](/subgraphs/querying/graphql-api/). +- [Build Substreams](/substreams/introduction/) +- [Browse Community Substreams](https://substreams.dev/) -### Data Flow Overview +### 2. Instant Token Data -1. A dapp triggers a transaction on Ethereum by interacting with a smart contract. +**Use Case:** Wallet balances, liquidity pools, transfer events. -2. As the transaction is processed, the smart contract emits one or more events. +- [Start with Token API](/token-api/quick-start/) -3. [Graph Node](/indexing/tooling/graph-node/) continuously scans the Ethereum blockchain for new blocks and filters for events relevant to a deployed Subgraph. +### 3. Flexible Historical Queries -4. When a matching event is identified, Graph Node executes the Subgraph’s mapping logic, which is a WASM module that transforms event data into structured entities. These entities are subsequently stored and indexed. +**Use Case:** Dapp frontends, custom analytics. -5. The dapp queries the Graph Node via a [GraphQL API](https://graphql.org/learn/), retrieving indexed data to render in the UI. Users can then take actions that generate new transactions, continuing the cycle. - -The diagram below provides more detailed information about the flow of data after a Subgraph manifest has been deployed with Ethereum transactions. - -![एक ग्राफ़िक समझाता है कि कैसे ग्राफ़ डेटा उपभोक्ताओं को क्वेरीज़ प्रदान करने के लिए ग्राफ़ नोड का उपयोग करता है](/img/graph-dataflow.png) - -## अगले कदम - -Explore [Graph Explorer](https://thegraph.com/explorer) to view and query existing Subgraphs. +- [Explore Subgraphs](https://thegraph.com/explorer) +- [Build Your Subgraph](/subgraphs/quick-start) From 96b950260e85cfab96ca24b45b349f1e90ba4381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:05 -0400 Subject: [PATCH 0505/1709] New translations api.mdx (Romanian) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ro/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ro/subgraphs/developing/creating/graph-ts/api.mdx index 5be2530c4d6b..2e256ae18190 100644 --- a/website/src/pages/ro/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ro/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types From 79ac7808696df497a563de54ac94e8e16a2dd7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:06 -0400 Subject: [PATCH 0506/1709] New translations get-balances-evm-by-address.mdx (Romanian) --- .../pages/ro/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ro/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ro/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ro/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From d6c1a1ac4a45d3befe9a82891f2dfd07b642a96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:07 -0400 Subject: [PATCH 0507/1709] New translations get-holders-evm-by-contract.mdx (Romanian) --- .../pages/ro/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ro/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ro/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ro/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 2d691e815d9f9a79beb4fa0425dc0932333fb42e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:08 -0400 Subject: [PATCH 0508/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Romanian) --- .../ro/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ro/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ro/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ro/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 1115de80845b0cbc80dc9508af4fba6cae8bfd59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:09 -0400 Subject: [PATCH 0509/1709] New translations get-tokens-evm-by-contract.mdx (Romanian) --- .../src/pages/ro/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ro/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ro/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ro/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 3153c31784c0bb4942b373535fc4908035bbdbd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:10 -0400 Subject: [PATCH 0510/1709] New translations get-health.mdx (Romanian) --- website/src/pages/ro/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/monitoring/get-health.mdx b/website/src/pages/ro/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ro/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ro/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From fd0d9a74f8d6f21ad796e4c38ea3af45244eea70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:11 -0400 Subject: [PATCH 0511/1709] New translations get-networks.mdx (Romanian) --- website/src/pages/ro/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/monitoring/get-networks.mdx b/website/src/pages/ro/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..648bec397f5a 100644 --- a/website/src/pages/ro/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ro/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Rețele suportate template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From c3f1408cb553819ebf9a17b410ea208b9c7d3a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:12 -0400 Subject: [PATCH 0512/1709] New translations get-version.mdx (Romanian) --- website/src/pages/ro/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/monitoring/get-version.mdx b/website/src/pages/ro/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/ro/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ro/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From c87ef62fb2b7faa69d55b3e6b51edb45926e8d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:13 -0400 Subject: [PATCH 0513/1709] New translations get-historical-balances-evm-by-address.mdx (Romanian) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ro/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ro/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 50da89d23c8f4d7c235ae3173da269606a854e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:14 -0400 Subject: [PATCH 0514/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Romanian) --- .../ro/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ro/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ro/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From f825b65fa59b38364e110dbaf625d1e99ec97546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:16 -0400 Subject: [PATCH 0515/1709] New translations get-pools-evm.mdx (Romanian) --- website/src/pages/ro/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ro/token-api/evm/get-pools-evm.mdx b/website/src/pages/ro/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 4a287f3e385c343febd7c76e0d78da72c1acd68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:17 -0400 Subject: [PATCH 0516/1709] New translations get-swaps-evm.mdx (Romanian) --- website/src/pages/ro/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ro/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ro/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From e98fdab5b6db9abe1fad3fa90491022db0d9597e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:18 -0400 Subject: [PATCH 0517/1709] New translations get-transfers-evm.mdx (Romanian) --- website/src/pages/ro/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From aec0010b02b1a3348844ee185db2ff351e42e7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:19 -0400 Subject: [PATCH 0518/1709] New translations api.mdx (French) --- .../developing/creating/graph-ts/api.mdx | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/website/src/pages/fr/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/fr/subgraphs/developing/creating/graph-ts/api.mdx index 90bc58c98943..63c7591d8398 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/fr/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ La bibliothèque `@graphprotocol/graph-ts` fournit les API suivantes : La `apiVersion` dans le manifeste du subgraph spécifie la version de l'API de mappage qui est exécutée par Graph Node pour un subgraph donné. -| Version | Notes de version | -| :-: | --- | -| 0.0.9 | Ajout de nouvelles fonctions hôtes [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Ajout de la validation pour l'existence des champs dans le schéma lors de l'enregistrement d'une entité. | -| 0.0.7 | Ajout des classes `TransactionReceipt` et `Log`aux types Ethereum
Ajout du champ `receipt` à l'objet Ethereum Event | -| 0.0.6 | Ajout du champ `nonce` à l'objet Ethereum Transaction
Ajout de `baseFeePerGas` à l'objet Ethereum Block | -| 0.0.5 | AssemblyScript mis à jour vers la version 0.19.10 (cela inclut des changements de rupture, veuillez consulter le [`Guide de migration`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renommé en `ethereum.transaction.gasLimit` | -| 0.0.4 | Ajout du champ `functionSignature` à l'objet Ethereum SmartContractCall | -| 0.0.3 | Ajout du champ `from` à l'objet Ethereum Call
`ethereum.call.address` renommé en `ethereum.call.to` | -| 0.0.2 | Ajout du champ `input` à l'objet Ethereum Transaction | +| Version | Notes de version | +| :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 0.0.9 | Ajout de nouvelles fonctions hôtes [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Ajout de la validation pour l'existence des champs dans le schéma lors de l'enregistrement d'une entité. | +| 0.0.7 | Ajout des classes `TransactionReceipt` et `Log`aux types Ethereum
Ajout du champ `receipt` à l'objet Ethereum Event | +| 0.0.6 | Ajout du champ `nonce` à l'objet Ethereum Transaction
Ajout de `baseFeePerGas` à l'objet Ethereum Block | +| 0.0.5 | AssemblyScript mis à jour vers la version 0.19.10 (cela inclut des changements de rupture, veuillez consulter le [`Guide de migration`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renommé en `ethereum.transaction.gasLimit` | +| 0.0.4 | Ajout du champ `functionSignature` à l'objet Ethereum SmartContractCall | +| 0.0.3 | Ajout du champ `from` à l'objet Ethereum Call
`ethereum.call.address` renommé en `ethereum.call.to` | +| 0.0.2 | Ajout du champ `input` à l'objet Ethereum Transaction | ### Types intégrés @@ -770,44 +770,44 @@ Lorsque le type d'une valeur est certain, il peut être converti en un [type int ### Référence des conversions de types -| Source(s) | Destination | Fonctions de conversion | -| -------------------- | -------------------- | ---------------------------- | -| Address | Bytes | aucune | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() or s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | aucune | -| Bytes (signé) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (non signé) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() or s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | aucune | -| int32 | i32 | aucune | -| int32 | BigInt | BigInt.fromI32(s) | -| uint24 | i32 | aucune | -| int64 - int256 | BigInt | aucune | -| uint32 - uint256 | BigInt | aucune | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toI64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromBytes(s) | -| String | BigInt | BigInt.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Source(s) | Destination | Fonctions de conversion | +| --------------------- | -------------------- | -------------------------------- | +| Address | Bytes | aucune | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | String (hexadecimal) | s.toHexString() or s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | aucune | +| Bytes (signé) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (non signé) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | String (hexadecimal) | s.toHexString() or s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | aucune | +| int32 | i32 | aucune | +| int32 | BigInt | BigInt.fromI32(s) | +| uint24 | i32 | aucune | +| int64 - int256 | BigInt | aucune | +| uint32 - uint256 | BigInt | aucune | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toI64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromBytes(s) | +| String | BigInt | BigInt.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### Métadonnées de la source de données From 70da13a4830783d015498dff024bccdef789eef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:20 -0400 Subject: [PATCH 0519/1709] New translations get-balances-evm-by-address.mdx (French) --- .../pages/fr/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/fr/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/fr/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/fr/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 20340f6fe64a98d5d386b04435a884cdc2de1f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:21 -0400 Subject: [PATCH 0520/1709] New translations get-holders-evm-by-contract.mdx (French) --- .../pages/fr/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/fr/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/fr/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/fr/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 405f26c96a9476312ef5ee0573bab2bfc1aa7e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:22 -0400 Subject: [PATCH 0521/1709] New translations get-ohlc-prices-evm-by-contract.mdx (French) --- .../fr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/fr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/fr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/fr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 45387bd1808a4637bfb982326daca70610b67a54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:23 -0400 Subject: [PATCH 0522/1709] New translations get-tokens-evm-by-contract.mdx (French) --- .../src/pages/fr/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/fr/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/fr/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/fr/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 20196a155017a7532be5ddd28712d2de7e1e05ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:24 -0400 Subject: [PATCH 0523/1709] New translations get-health.mdx (French) --- website/src/pages/fr/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/monitoring/get-health.mdx b/website/src/pages/fr/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/fr/token-api/monitoring/get-health.mdx +++ b/website/src/pages/fr/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From b8964a18cb5abd8ef0d9c3376cb2b60bb346d3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:25 -0400 Subject: [PATCH 0524/1709] New translations get-networks.mdx (French) --- website/src/pages/fr/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/monitoring/get-networks.mdx b/website/src/pages/fr/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..7f3b38ffd7c8 100644 --- a/website/src/pages/fr/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/fr/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Réseaux pris en charge template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From adda6c6f8cbb0f05ebbc9883f60ab6d85601e37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:26 -0400 Subject: [PATCH 0525/1709] New translations get-version.mdx (French) --- website/src/pages/fr/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/monitoring/get-version.mdx b/website/src/pages/fr/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/fr/token-api/monitoring/get-version.mdx +++ b/website/src/pages/fr/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 36b4a9fcb8210cb979ea1f661014b95b9ed7d34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:28 -0400 Subject: [PATCH 0526/1709] New translations get-historical-balances-evm-by-address.mdx (French) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/fr/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/fr/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 179ed17f6e93c92a1b6152d362e2fab1489b889d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:29 -0400 Subject: [PATCH 0527/1709] New translations get-ohlc-pools-evm-by-pool.mdx (French) --- .../fr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/fr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/fr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 707adb41a22d36c79e3e00af28c9fa5f86fb8ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:30 -0400 Subject: [PATCH 0528/1709] New translations get-pools-evm.mdx (French) --- website/src/pages/fr/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/fr/token-api/evm/get-pools-evm.mdx b/website/src/pages/fr/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 3db02774236b14b0dfd85cb98c31cfb3c0ee7f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:31 -0400 Subject: [PATCH 0529/1709] New translations get-swaps-evm.mdx (French) --- website/src/pages/fr/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/fr/token-api/evm/get-swaps-evm.mdx b/website/src/pages/fr/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From f029c09caa7b18dc9e82e24cc6d8cc736f841a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:32 -0400 Subject: [PATCH 0530/1709] New translations get-transfers-evm.mdx (French) --- website/src/pages/fr/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 7a95d6e353df6dd9d502448c196559a033094781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:33 -0400 Subject: [PATCH 0531/1709] New translations api.mdx (Spanish) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/es/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/es/subgraphs/developing/creating/graph-ts/api.mdx index 7673a925ad21..4479673b2af3 100644 --- a/website/src/pages/es/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/es/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Notas del lanzamiento | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Notas del lanzamiento | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Tipos Incorporados From 185bbf5a022be0bf0644d519072096d6de771004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:35 -0400 Subject: [PATCH 0532/1709] New translations get-balances-evm-by-address.mdx (Spanish) --- .../pages/es/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/es/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/es/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/es/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 41d06248926e79363b53c020b55b72ea33031754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:36 -0400 Subject: [PATCH 0533/1709] New translations get-holders-evm-by-contract.mdx (Spanish) --- .../pages/es/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/es/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/es/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/es/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 0c86e54f972250c0fb3d8864a59dc83145a9bbb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:38 -0400 Subject: [PATCH 0534/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Spanish) --- .../es/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/es/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/es/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/es/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 55fe57f02b9f27a887e011c05516d565f0a4ace9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:39 -0400 Subject: [PATCH 0535/1709] New translations get-tokens-evm-by-contract.mdx (Spanish) --- .../src/pages/es/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/es/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/es/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/es/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 43e9c62ad02d2b93a47e19393f1b514ec7e3b8a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:40 -0400 Subject: [PATCH 0536/1709] New translations get-health.mdx (Spanish) --- website/src/pages/es/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/monitoring/get-health.mdx b/website/src/pages/es/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/es/token-api/monitoring/get-health.mdx +++ b/website/src/pages/es/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From cb92cbf168015074b5c1aaa97ed5c6cf31ec027e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:41 -0400 Subject: [PATCH 0537/1709] New translations get-networks.mdx (Spanish) --- website/src/pages/es/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/monitoring/get-networks.mdx b/website/src/pages/es/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..24156f36f74d 100644 --- a/website/src/pages/es/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/es/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Redes Admitidas template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 280b0a3bf1fcc2fbb7c80daa63e710e5cace7d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:42 -0400 Subject: [PATCH 0538/1709] New translations get-version.mdx (Spanish) --- website/src/pages/es/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/monitoring/get-version.mdx b/website/src/pages/es/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/es/token-api/monitoring/get-version.mdx +++ b/website/src/pages/es/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From b3b1c6bafe6f93aa9ea221c1d5689e02303a2043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:43 -0400 Subject: [PATCH 0539/1709] New translations get-historical-balances-evm-by-address.mdx (Spanish) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/es/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/es/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 5062aaa78fede8ab0013dff204bcad2a3974c28a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:44 -0400 Subject: [PATCH 0540/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Spanish) --- .../es/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/es/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/es/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 54cea78cd97bb1e1e98e4a909f330762b7809201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:46 -0400 Subject: [PATCH 0541/1709] New translations get-pools-evm.mdx (Spanish) --- website/src/pages/es/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/es/token-api/evm/get-pools-evm.mdx b/website/src/pages/es/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 9703b3919c866538035881cdc25c7b143f1d029f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:47 -0400 Subject: [PATCH 0542/1709] New translations get-swaps-evm.mdx (Spanish) --- website/src/pages/es/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/es/token-api/evm/get-swaps-evm.mdx b/website/src/pages/es/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 50a3a03d1872eb0de83bc5dabedef3fa4c3dad8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:48 -0400 Subject: [PATCH 0543/1709] New translations get-transfers-evm.mdx (Spanish) --- website/src/pages/es/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/es/token-api/evm/get-transfers-evm.mdx b/website/src/pages/es/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From d7a10624716a917ecce3baec9b0328df76886668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:49 -0400 Subject: [PATCH 0544/1709] New translations api.mdx (Arabic) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ar/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ar/subgraphs/developing/creating/graph-ts/api.mdx index a721f6bcd8d4..ef43760cfdbf 100644 --- a/website/src/pages/ar/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ar/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| الاصدار | ملاحظات الإصدار | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| الاصدار | ملاحظات الإصدار | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### الأنواع المضمنة (Built-in) From bea5739f1ec93067769a669b8cb762f0de46133f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:50 -0400 Subject: [PATCH 0545/1709] New translations get-balances-evm-by-address.mdx (Arabic) --- .../pages/ar/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ar/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ar/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ar/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 06e4c4aa0e213ab77761be2872a0d66c47096818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:52 -0400 Subject: [PATCH 0546/1709] New translations get-holders-evm-by-contract.mdx (Arabic) --- .../pages/ar/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ar/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ar/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ar/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From d281be23ef55062d43aa49ef3e195be21e3fc47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:53 -0400 Subject: [PATCH 0547/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Arabic) --- .../ar/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ar/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ar/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ar/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 253120ff14c3eab401196dca5138b30b6185703a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:54 -0400 Subject: [PATCH 0548/1709] New translations get-tokens-evm-by-contract.mdx (Arabic) --- .../src/pages/ar/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ar/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ar/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ar/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 597edbd6008cf5ffd89e835b7c09062eb9f00815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:55 -0400 Subject: [PATCH 0549/1709] New translations get-health.mdx (Arabic) --- website/src/pages/ar/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/monitoring/get-health.mdx b/website/src/pages/ar/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ar/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ar/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 2f5a1f2a0c5eb527445a68006da1293efab020cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:56 -0400 Subject: [PATCH 0550/1709] New translations get-networks.mdx (Arabic) --- website/src/pages/ar/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/monitoring/get-networks.mdx b/website/src/pages/ar/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..a91071511b82 100644 --- a/website/src/pages/ar/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ar/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: الشبكات المدعومة template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From b3ad860b873cbb9eaa7163de801722761024aa9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:57 -0400 Subject: [PATCH 0551/1709] New translations get-version.mdx (Arabic) --- website/src/pages/ar/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/monitoring/get-version.mdx b/website/src/pages/ar/token-api/monitoring/get-version.mdx index 0be6b7e92d04..c4437d4d3246 100644 --- a/website/src/pages/ar/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ar/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: الاصدار template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From a7a8a833b1256209e103e6885207bcfaa04547fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:58 -0400 Subject: [PATCH 0552/1709] New translations get-historical-balances-evm-by-address.mdx (Arabic) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ar/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ar/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 1ea85d685c7a3995a0b4ad2ff981b13cb9f45247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:08:59 -0400 Subject: [PATCH 0553/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Arabic) --- .../ar/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ar/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ar/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From c472678ce0ba40c155e692fd1823febaa39bd8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:00 -0400 Subject: [PATCH 0554/1709] New translations get-pools-evm.mdx (Arabic) --- website/src/pages/ar/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ar/token-api/evm/get-pools-evm.mdx b/website/src/pages/ar/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 91dbcf707f7e50589d16e2629deda6c861990fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:01 -0400 Subject: [PATCH 0555/1709] New translations get-swaps-evm.mdx (Arabic) --- website/src/pages/ar/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ar/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ar/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From f5ff697b5815370d4f6d1681cda0b2251d9e5701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:02 -0400 Subject: [PATCH 0556/1709] New translations get-transfers-evm.mdx (Arabic) --- website/src/pages/ar/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From a86fe294e9f2f43918dec5ed82aa88915dcfc4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:04 -0400 Subject: [PATCH 0557/1709] New translations api.mdx (Czech) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/cs/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/cs/subgraphs/developing/creating/graph-ts/api.mdx index 87734452737d..e794c1caa32c 100644 --- a/website/src/pages/cs/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/cs/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Knihovna `@graphprotocol/graph-ts` poskytuje následující API: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Verze | Poznámky vydání | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Přidá ověření existence polí ve schéma při ukládání entity. | -| 0.0.7 | Přidání tříd `TransactionReceipt` a `Log` do typů Ethereum
Přidání pole `receipt` do objektu Ethereum událost | -| 0.0.6 | Přidáno pole `nonce` do objektu Ethereum Transaction
Přidáno `baseFeePerGas` do objektu Ethereum bloku | +| Verze | Poznámky vydání | +| :---: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Přidá ověření existence polí ve schéma při ukládání entity. | +| 0.0.7 | Přidání tříd `TransactionReceipt` a `Log` do typů Ethereum
Přidání pole `receipt` do objektu Ethereum událost | +| 0.0.6 | Přidáno pole `nonce` do objektu Ethereum Transaction
Přidáno `baseFeePerGas` do objektu Ethereum bloku | | 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Přidání pole `functionSignature` do objektu Ethereum SmartContractCall | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Přidání pole `input` do objektu Ethereum Transackce | +| 0.0.4 | Přidání pole `functionSignature` do objektu Ethereum SmartContractCall | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Přidání pole `input` do objektu Ethereum Transackce | ### Vestavěné typy @@ -147,7 +147,7 @@ _Math_ - `x.notEqual(y: BigInt): bool` –lze zapsat jako `x != y`. - `x.lt(y: BigInt): bool` – lze zapsat jako `x < y`. - `x.le(y: BigInt): bool` – lze zapsat jako `x <= y`. -- `x.gt(y: BigInt): bool` – lze zapsat jako `x > y`. +- `x.gt(y: BigInt): bool` – lze zapsat jako `x > y`. - `x.ge(y: BigInt): bool` – lze zapsat jako `x >= y`. - `x.neg(): BigInt` – lze zapsat jako `-x`. - `x.divDecimal(y: BigDecimal): BigDecimal` – dělí desetinným číslem, čímž získá desetinný výsledek. From a64f7b5347787491cb638a1b5d8f6827d7b3640e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:05 -0400 Subject: [PATCH 0558/1709] New translations get-balances-evm-by-address.mdx (Czech) --- .../pages/cs/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/cs/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/cs/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/cs/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From de9f68bc2dbf147bd4190364a9cb1aed42c71b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:06 -0400 Subject: [PATCH 0559/1709] New translations get-holders-evm-by-contract.mdx (Czech) --- .../pages/cs/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/cs/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/cs/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/cs/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 88688f35ac1c091bf86ad147ab1db2d76c449052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:08 -0400 Subject: [PATCH 0560/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Czech) --- .../cs/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/cs/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/cs/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/cs/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 912a4f7f37ea217f1e87389ab771cb9df48be181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:08 -0400 Subject: [PATCH 0561/1709] New translations get-tokens-evm-by-contract.mdx (Czech) --- .../src/pages/cs/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/cs/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/cs/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/cs/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From b27c875593717bcbfc98efeec8b5b159e18a6981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:09 -0400 Subject: [PATCH 0562/1709] New translations get-health.mdx (Czech) --- website/src/pages/cs/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/monitoring/get-health.mdx b/website/src/pages/cs/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/cs/token-api/monitoring/get-health.mdx +++ b/website/src/pages/cs/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 66f518de649cdee07653a2d9a198bc247694ac61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:10 -0400 Subject: [PATCH 0563/1709] New translations get-networks.mdx (Czech) --- website/src/pages/cs/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/monitoring/get-networks.mdx b/website/src/pages/cs/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..5aff52361e29 100644 --- a/website/src/pages/cs/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/cs/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Podporované sítě template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 8a313756f259d414de94227ab6e4f8357d0b2f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:11 -0400 Subject: [PATCH 0564/1709] New translations get-version.mdx (Czech) --- website/src/pages/cs/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/monitoring/get-version.mdx b/website/src/pages/cs/token-api/monitoring/get-version.mdx index 0be6b7e92d04..f0d5f765305b 100644 --- a/website/src/pages/cs/token-api/monitoring/get-version.mdx +++ b/website/src/pages/cs/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Verze template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 90dbde9644ac889bf87ca12b724e8fa2f9f8ea5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:12 -0400 Subject: [PATCH 0565/1709] New translations get-historical-balances-evm-by-address.mdx (Czech) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/cs/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/cs/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From a68270fa346ab186c1598b1af9f4b44ba4783c48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:13 -0400 Subject: [PATCH 0566/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Czech) --- .../cs/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/cs/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/cs/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From a4b026a112fe1ab02944eedbfa01dc41da6454a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:15 -0400 Subject: [PATCH 0567/1709] New translations get-pools-evm.mdx (Czech) --- website/src/pages/cs/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/cs/token-api/evm/get-pools-evm.mdx b/website/src/pages/cs/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 27269226442f1d082746c11b1536470c7d553527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:16 -0400 Subject: [PATCH 0568/1709] New translations get-swaps-evm.mdx (Czech) --- website/src/pages/cs/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/cs/token-api/evm/get-swaps-evm.mdx b/website/src/pages/cs/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 8dd778ea0a4d5a7d8e22b8ec629f3871486cd662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:17 -0400 Subject: [PATCH 0569/1709] New translations get-transfers-evm.mdx (Czech) --- website/src/pages/cs/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx b/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From c2dcad6162e62263ad998df73368a90ca44dae17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:18 -0400 Subject: [PATCH 0570/1709] New translations api.mdx (German) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/de/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/de/subgraphs/developing/creating/graph-ts/api.mdx index c56511a3a35c..f6df454bbca8 100644 --- a/website/src/pages/de/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/de/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Die Bibliothek `@graphprotocol/graph-ts` bietet die folgenden APIs: Die `apiVersion` im Subgraph-Manifest gibt die Mapping-API-Version an, die von Graph Node für einen bestimmten Subgraph ausgeführt wird. -| Version | Hinweise zur Version | -| :-: | --- | -| 0.0.9 | Fügt neue Host-Funktionen hinzu [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Fügt eine Validierung für das Vorhandensein von Feldern im Schema beim Speichern einer Entität hinzu. | -| 0.0.7 | Klassen `TransactionReceipt` und `Log` zu den Ethereum-Typen hinzugefügt<br />Feld `Receipt` zum Ethereum Event Objekt hinzugefügt | -| 0.0.6 | Feld `nonce` zum Ethereum Transaction Objekt hinzugefügt<br />`baseFeePerGas` zum Ethereum Block Objekt hinzugefügt | -| 0.0.5 | AssemblyScript wurde auf Version 0.19.10 aktualisiert (dies beinhaltet einige Änderungen, siehe [`Migrationsanleitung`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` umbenannt in `ethereum.transaction.gasLimit` | -| 0.0.4 | Feld `functionSignature` zum Ethereum SmartContractCall Objekt hinzugefügt | -| 0.0.3 | Feld `von` zum Ethereum Call Objekt hinzugefügt<br />`ethereum.call.address` umbenannt in `ethereum.call.to` | -| 0.0.2 | Feld „Eingabe“ zum Ethereum-Transaktionsobjekt hinzugefügt | +| Version | Hinweise zur Version | +| :-----: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Fügt neue Host-Funktionen hinzu [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Fügt eine Validierung für das Vorhandensein von Feldern im Schema beim Speichern einer Entität hinzu. | +| 0.0.7 | Klassen `TransactionReceipt` und `Log` zu den Ethereum-Typen hinzugefügt<br />Feld `Receipt` zum Ethereum Event Objekt hinzugefügt | +| 0.0.6 | Feld `nonce` zum Ethereum Transaction Objekt hinzugefügt<br />`baseFeePerGas` zum Ethereum Block Objekt hinzugefügt | +| 0.0.5 | AssemblyScript wurde auf Version 0.19.10 aktualisiert (dies beinhaltet einige Änderungen, siehe [`Migrationsanleitung`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` umbenannt in `ethereum.transaction.gasLimit` | +| 0.0.4 | Feld `functionSignature` zum Ethereum SmartContractCall Objekt hinzugefügt | +| 0.0.3 | Feld `von` zum Ethereum Call Objekt hinzugefügt<br />`ethereum.call.address` umbenannt in `ethereum.call.to` | +| 0.0.2 | Feld „Eingabe“ zum Ethereum-Transaktionsobjekt hinzugefügt | ### Integrierte Typen From 1f6bcc4a4c66937b3675653380f1c97ca1e19924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:19 -0400 Subject: [PATCH 0571/1709] New translations get-balances-evm-by-address.mdx (German) --- .../pages/de/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/de/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/de/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/de/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From a0c6c3934008cfea503fa590801b1d0a46ac5ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:20 -0400 Subject: [PATCH 0572/1709] New translations get-holders-evm-by-contract.mdx (German) --- .../pages/de/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/de/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/de/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/de/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 8d96b4e6491e94142d944319b9777f351b2d7537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:21 -0400 Subject: [PATCH 0573/1709] New translations get-ohlc-prices-evm-by-contract.mdx (German) --- .../de/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/de/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/de/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/de/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From fda89545a12d573a772f4d3bff53f3f8b76c5b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:23 -0400 Subject: [PATCH 0574/1709] New translations get-tokens-evm-by-contract.mdx (German) --- .../src/pages/de/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/de/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/de/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/de/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From c426880b3e5b21bef021f359271a50ed5200869c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:25 -0400 Subject: [PATCH 0575/1709] New translations get-health.mdx (German) --- website/src/pages/de/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/monitoring/get-health.mdx b/website/src/pages/de/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/de/token-api/monitoring/get-health.mdx +++ b/website/src/pages/de/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 86826f143546326759a159d76e9f84e9081b91ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:25 -0400 Subject: [PATCH 0576/1709] New translations get-networks.mdx (German) --- website/src/pages/de/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/monitoring/get-networks.mdx b/website/src/pages/de/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..addfc546ce40 100644 --- a/website/src/pages/de/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/de/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Unterstützte Netzwerke template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From b78dc2f150575bb709ad07ac1056f489e84d3ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:26 -0400 Subject: [PATCH 0577/1709] New translations get-version.mdx (German) --- website/src/pages/de/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/monitoring/get-version.mdx b/website/src/pages/de/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/de/token-api/monitoring/get-version.mdx +++ b/website/src/pages/de/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 1490ea86d9d13ad7ac7985049fa2bc2f07b5d245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:28 -0400 Subject: [PATCH 0578/1709] New translations get-historical-balances-evm-by-address.mdx (German) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/de/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/de/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 4dedc6df69afe04b8a9d7c7f037db1923647f3df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:29 -0400 Subject: [PATCH 0579/1709] New translations get-ohlc-pools-evm-by-pool.mdx (German) --- .../de/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/de/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/de/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 17f47fda302afd7663cbe20d0d73f5bf676a6c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:30 -0400 Subject: [PATCH 0580/1709] New translations get-pools-evm.mdx (German) --- website/src/pages/de/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/de/token-api/evm/get-pools-evm.mdx b/website/src/pages/de/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 560f645d24ee54301a18d60226f27cef3c5cf43d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:31 -0400 Subject: [PATCH 0581/1709] New translations get-swaps-evm.mdx (German) --- website/src/pages/de/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/de/token-api/evm/get-swaps-evm.mdx b/website/src/pages/de/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 720dd5ba9a8933a5619c1c570e62657d447927a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:32 -0400 Subject: [PATCH 0582/1709] New translations get-transfers-evm.mdx (German) --- website/src/pages/de/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/de/token-api/evm/get-transfers-evm.mdx b/website/src/pages/de/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From acd43f89d01c13d569f2103518f75cc7bf4d5457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:33 -0400 Subject: [PATCH 0583/1709] New translations api.mdx (Italian) --- .../developing/creating/graph-ts/api.mdx | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/website/src/pages/it/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/it/subgraphs/developing/creating/graph-ts/api.mdx index 06fd431e7048..fb87d521d968 100644 --- a/website/src/pages/it/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/it/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ La libreria `@graphprotocol/graph-ts` fornisce le seguenti API: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Versione | Note di rilascio | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Aggiunte le classi `TransactionReceipt` e `Log` ai tipi di Ethereum
Aggiunto il campo `receipt` all'oggetto Ethereum Event | -| 0.0.6 | Aggiunto il campo `nonce` all'oggetto Ethereum Transaction
Aggiunto `baseFeePerGas` all'oggetto Ethereum Block | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Aggiunto il campo `functionSignature` all'oggetto Ethereum SmartContractCall | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Aggiunto il campo `input` all'oggetto Ethereum Transaction | +| Versione | Note di rilascio | +| :------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Aggiunte le classi `TransactionReceipt` e `Log` ai tipi di Ethereum
Aggiunto il campo `receipt` all'oggetto Ethereum Event | +| 0.0.6 | Aggiunto il campo `nonce` all'oggetto Ethereum Transaction
Aggiunto `baseFeePerGas` all'oggetto Ethereum Block | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Aggiunto il campo `functionSignature` all'oggetto Ethereum SmartContractCall | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Aggiunto il campo `input` all'oggetto Ethereum Transaction | ### Tipi integrati @@ -770,44 +770,44 @@ Quando il tipo di un valore è certo, può essere convertito in un [tipo incorpo ### Riferimento alle conversioni di tipo -| Fonte(i) | Destinazione | Funzione di conversione | -| -------------------- | -------------------- | --------------------------- | -| Address | Bytes | none | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() o s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | none | -| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() o s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | none | -| int32 | i32 | none | -| int32 | BigInt | BigInt.fromI32(s) | -| uint24 | i32 | none | -| int64 - int256 | BigInt | none | -| uint32 - uint256 | BigInt | none | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toI64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromBytes(s) | -| String | BigInt | BigInt.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Fonte(i) | Destinazione | Funzione di conversione | +| -------------------- | --------------------- | -------------------------------- | +| Address | Bytes | none | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | String (hexadecimal) | s.toHexString() o s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | none | +| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | String (hexadecimal) | s.toHexString() o s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | none | +| int32 | i32 | none | +| int32 | BigInt | BigInt.fromI32(s) | +| uint24 | i32 | none | +| int64 - int256 | BigInt | none | +| uint32 - uint256 | BigInt | none | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toI64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromBytes(s) | +| String | BigInt | BigInt.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### Metadati della Data Source From cfba55c7db16b45a658f119a7a3e48411a2a99d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:34 -0400 Subject: [PATCH 0584/1709] New translations get-balances-evm-by-address.mdx (Italian) --- .../pages/it/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/it/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/it/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/it/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From d047197847d73cf34468f765f0c90d2c6a8da7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:35 -0400 Subject: [PATCH 0585/1709] New translations get-holders-evm-by-contract.mdx (Italian) --- .../pages/it/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/it/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/it/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/it/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 9ee77b4b2994dc10bab53934b2d7c2bf24eb1c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:36 -0400 Subject: [PATCH 0586/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Italian) --- .../it/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/it/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/it/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/it/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 0b43326c2879d0fe9e4f18fd8551b04d32839af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:37 -0400 Subject: [PATCH 0587/1709] New translations get-tokens-evm-by-contract.mdx (Italian) --- .../src/pages/it/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/it/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/it/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/it/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 187e9e1b1eb6151d5071632f99c26329d021dd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:38 -0400 Subject: [PATCH 0588/1709] New translations get-health.mdx (Italian) --- website/src/pages/it/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/monitoring/get-health.mdx b/website/src/pages/it/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/it/token-api/monitoring/get-health.mdx +++ b/website/src/pages/it/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 8d6a96d44ba1abf6487958e8eafaf33a03d5905d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:39 -0400 Subject: [PATCH 0589/1709] New translations get-networks.mdx (Italian) --- website/src/pages/it/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/monitoring/get-networks.mdx b/website/src/pages/it/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..f4b65492ed15 100644 --- a/website/src/pages/it/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/it/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Supported Networks template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 5b4a63ab266f10ef3419fe4ccce230996891772c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:40 -0400 Subject: [PATCH 0590/1709] New translations get-version.mdx (Italian) --- website/src/pages/it/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/monitoring/get-version.mdx b/website/src/pages/it/token-api/monitoring/get-version.mdx index 0be6b7e92d04..8766594e2dd8 100644 --- a/website/src/pages/it/token-api/monitoring/get-version.mdx +++ b/website/src/pages/it/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Versione template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 2191544a0a434780a9481ec85883555af61dd108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:41 -0400 Subject: [PATCH 0591/1709] New translations get-historical-balances-evm-by-address.mdx (Italian) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/it/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/it/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 7437d68c2a032ae34a3571276b6b7d54955453ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:43 -0400 Subject: [PATCH 0592/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Italian) --- .../it/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/it/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/it/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 467aa15100eb4b2070e9b2f9883c303ce9a48b04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:44 -0400 Subject: [PATCH 0593/1709] New translations get-pools-evm.mdx (Italian) --- website/src/pages/it/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/it/token-api/evm/get-pools-evm.mdx b/website/src/pages/it/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From d9b6a0508f06e49bfe0640368527c839b189ae28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:45 -0400 Subject: [PATCH 0594/1709] New translations get-swaps-evm.mdx (Italian) --- website/src/pages/it/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/it/token-api/evm/get-swaps-evm.mdx b/website/src/pages/it/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 1e8089fe61d35530352b6eb60ca27ed6feb7781b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:46 -0400 Subject: [PATCH 0595/1709] New translations get-transfers-evm.mdx (Italian) --- website/src/pages/it/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/it/token-api/evm/get-transfers-evm.mdx b/website/src/pages/it/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 69637e57b9e2424ebf1ba551bf03e9deb0d27fa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:47 -0400 Subject: [PATCH 0596/1709] New translations api.mdx (Japanese) --- .../developing/creating/graph-ts/api.mdx | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/website/src/pages/ja/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ja/subgraphs/developing/creating/graph-ts/api.mdx index 94df906daad7..b9e5cace8281 100644 --- a/website/src/pages/ja/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ja/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Since language mappings are written in AssemblyScript, it is useful to review th The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| バージョン | リリースノート | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Ethereum タイプに `TransactionReceipt` と `Log` クラスを追加
Ethereum Event オブジェクトに `receipt` フィールドを追加。 | -| 0.0.6 | Ethereum Transactionオブジェクトに`nonce`フィールドを追加
Ethereum Blockオブジェクトに`baseFeePerGas`を追加。 | +| バージョン | リリースノート | +| :---: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Ethereum タイプに `TransactionReceipt` と `Log` クラスを追加
Ethereum Event オブジェクトに `receipt` フィールドを追加。 | +| 0.0.6 | Ethereum Transactionオブジェクトに`nonce`フィールドを追加
Ethereum Blockオブジェクトに`baseFeePerGas`を追加。 | | 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Ethereum SmartContractCall オブジェクトにfunctionSignatureフィールドを追加 | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Ethereum Transaction オブジェクトに inputフィールドを追加 | +| 0.0.4 | Ethereum SmartContractCall オブジェクトにfunctionSignatureフィールドを追加 | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Ethereum Transaction オブジェクトに inputフィールドを追加 | ### 組み込み型 @@ -286,7 +286,7 @@ The store API facilitates the retrieval of entities that were created or updated - For some Subgraphs, these missed lookups can contribute significantly to the indexing time. ```typescript -let id = event.transaction.hash // または ID が構築される方法 +let id =event.transaction.hash // または ID が構築される方法 let transfer = Transfer.loadInBlock(id) if (transfer == null) { transfer = 新しい転送(id) @@ -770,44 +770,44 @@ if (value.kind == JSONValueKind.BOOL) { ### タイプ 変換参照 -| Source(s) | Destination | Conversion function | -| -------------------- | -------------------- | ---------------------------- | -| Address | Bytes | none | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() or s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | none | -| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() or s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | none | -| int32 | i32 | none | -| int32 | BigInt | Bigint.fromI32(s) | -| uint24 | i32 | none | -| int64 - int256 | BigInt | none | -| uint32 - uint256 | BigInt | none | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toI64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromString(s) | -| String | BigInt | BigDecimal.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Source(s) | Destination | Conversion function | +| -------------------- | -------------------- | -------------------------------- | +| Address | Bytes | none | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | String (hexadecimal) | s.toHexString() or s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | none | +| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | String (hexadecimal) | s.toHexString() or s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | none | +| int32 | i32 | none | +| int32 | BigInt | Bigint.fromI32(s) | +| uint24 | i32 | none | +| int64 - int256 | BigInt | none | +| uint32 - uint256 | BigInt | none | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toI64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromString(s) | +| String | BigInt | BigDecimal.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### データソースのメタデータ From 6dbb3263aa57936d917b5709a728a5463a3e5e12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:48 -0400 Subject: [PATCH 0597/1709] New translations get-balances-evm-by-address.mdx (Japanese) --- .../pages/ja/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ja/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ja/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ja/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From f6254a5e6155516c9ab3c3e0a408f373a070e965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:49 -0400 Subject: [PATCH 0598/1709] New translations get-holders-evm-by-contract.mdx (Japanese) --- .../pages/ja/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ja/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ja/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ja/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From acbf23889b3ce3e3ef9476944d4fc6596355f44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:50 -0400 Subject: [PATCH 0599/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Japanese) --- .../ja/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ja/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ja/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ja/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From b31bed6891658da0dd71075cc639d57d2c94df55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:51 -0400 Subject: [PATCH 0600/1709] New translations get-tokens-evm-by-contract.mdx (Japanese) --- .../src/pages/ja/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ja/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ja/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ja/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 5dc378f7f7677ea758d1e145cb8ab5ad95be35dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:52 -0400 Subject: [PATCH 0601/1709] New translations get-health.mdx (Japanese) --- website/src/pages/ja/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/monitoring/get-health.mdx b/website/src/pages/ja/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ja/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ja/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From bf043d9380343d1ec482940faf0c246bfda21275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:53 -0400 Subject: [PATCH 0602/1709] New translations get-networks.mdx (Japanese) --- website/src/pages/ja/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/monitoring/get-networks.mdx b/website/src/pages/ja/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..4e77c80a0125 100644 --- a/website/src/pages/ja/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ja/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: サポートされているネットワーク template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 351e9979ba53c3409850916c2b42393fcf1404dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:54 -0400 Subject: [PATCH 0603/1709] New translations get-version.mdx (Japanese) --- website/src/pages/ja/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/monitoring/get-version.mdx b/website/src/pages/ja/token-api/monitoring/get-version.mdx index 0be6b7e92d04..d0609db887f2 100644 --- a/website/src/pages/ja/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ja/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: バージョン template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 7a66ffc7b8e8e67be61639f7d28a163e5f8f9382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:55 -0400 Subject: [PATCH 0604/1709] New translations get-historical-balances-evm-by-address.mdx (Japanese) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ja/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ja/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From f98fd7970907d2ea00051d9ec6fbdb942248d095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:57 -0400 Subject: [PATCH 0605/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Japanese) --- .../ja/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ja/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ja/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 18290cf3f55acc4cc68f8f11bed741f426d8a813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:58 -0400 Subject: [PATCH 0606/1709] New translations get-pools-evm.mdx (Japanese) --- website/src/pages/ja/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ja/token-api/evm/get-pools-evm.mdx b/website/src/pages/ja/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 7d1185dd222de61c02786ca5fb239ceae5888232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:09:59 -0400 Subject: [PATCH 0607/1709] New translations get-swaps-evm.mdx (Japanese) --- website/src/pages/ja/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ja/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ja/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 2b93abd0f4a2ad45caee567e566f48322dcc8732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:00 -0400 Subject: [PATCH 0608/1709] New translations get-transfers-evm.mdx (Japanese) --- website/src/pages/ja/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From f4c256e9578eee7d743933a6baec8f7961f3cf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:01 -0400 Subject: [PATCH 0609/1709] New translations api.mdx (Korean) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/ko/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ko/subgraphs/developing/creating/graph-ts/api.mdx index 5be2530c4d6b..2e256ae18190 100644 --- a/website/src/pages/ko/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ko/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types From 2cde413df9c69ca3f8a2cb73d00a1491a619053e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:02 -0400 Subject: [PATCH 0610/1709] New translations get-balances-evm-by-address.mdx (Korean) --- .../pages/ko/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ko/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ko/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ko/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 668497d03eddfeef5f226e0e759ed3b4aed5001d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:03 -0400 Subject: [PATCH 0611/1709] New translations get-holders-evm-by-contract.mdx (Korean) --- .../pages/ko/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ko/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ko/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ko/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 30a15ee8d5991c665dd995db08159675bcc4e424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:04 -0400 Subject: [PATCH 0612/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Korean) --- .../ko/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ko/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ko/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ko/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 104fea0d26108503424bbda99458161311b83d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:05 -0400 Subject: [PATCH 0613/1709] New translations get-tokens-evm-by-contract.mdx (Korean) --- .../src/pages/ko/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ko/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ko/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ko/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 3bb2a7e5a756643da413e23ab633251ac53940cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:06 -0400 Subject: [PATCH 0614/1709] New translations get-health.mdx (Korean) --- website/src/pages/ko/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/monitoring/get-health.mdx b/website/src/pages/ko/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ko/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ko/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 127d61b8db368206928ef74b547589ac66786c05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:07 -0400 Subject: [PATCH 0615/1709] New translations get-networks.mdx (Korean) --- website/src/pages/ko/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/monitoring/get-networks.mdx b/website/src/pages/ko/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..f4b65492ed15 100644 --- a/website/src/pages/ko/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ko/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Supported Networks template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From d5771e56650d34e493251e7d37663969c8a72b45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:08 -0400 Subject: [PATCH 0616/1709] New translations get-version.mdx (Korean) --- website/src/pages/ko/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/monitoring/get-version.mdx b/website/src/pages/ko/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/ko/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ko/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From def24703c7c1bac726ba4f09140c2a052d9c81dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:10 -0400 Subject: [PATCH 0617/1709] New translations get-historical-balances-evm-by-address.mdx (Korean) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ko/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ko/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From b73a5c0ababafe96ce7141c722a306f504feb06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:11 -0400 Subject: [PATCH 0618/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Korean) --- .../ko/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ko/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ko/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From f124c84661baea88598836137672f59ca6722afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:12 -0400 Subject: [PATCH 0619/1709] New translations get-pools-evm.mdx (Korean) --- website/src/pages/ko/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ko/token-api/evm/get-pools-evm.mdx b/website/src/pages/ko/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 68051028e90e8e3ed03c9a866e9d1f54867b01ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:13 -0400 Subject: [PATCH 0620/1709] New translations get-swaps-evm.mdx (Korean) --- website/src/pages/ko/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ko/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ko/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 28b9441614243504e0c684598fbddc3878cd468c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:14 -0400 Subject: [PATCH 0621/1709] New translations get-transfers-evm.mdx (Korean) --- website/src/pages/ko/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 41893132347eaade284cd173cb63b5911284672a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:16 -0400 Subject: [PATCH 0622/1709] New translations api.mdx (Dutch) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/nl/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/nl/subgraphs/developing/creating/graph-ts/api.mdx index 5be2530c4d6b..2e256ae18190 100644 --- a/website/src/pages/nl/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/nl/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types From 34f4582f4b17893e8990ebf2102b53da224ade14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:17 -0400 Subject: [PATCH 0623/1709] New translations get-balances-evm-by-address.mdx (Dutch) --- .../pages/nl/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/nl/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/nl/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/nl/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 694d529e45a6d387b8ae7e44017d3701e65aede2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:18 -0400 Subject: [PATCH 0624/1709] New translations get-holders-evm-by-contract.mdx (Dutch) --- .../pages/nl/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/nl/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/nl/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/nl/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From ad669b82be892ae527541ee6030906500daee7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:19 -0400 Subject: [PATCH 0625/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Dutch) --- .../nl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/nl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/nl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/nl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 95f93541186a9daa357148969b601db3006b1e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:20 -0400 Subject: [PATCH 0626/1709] New translations get-tokens-evm-by-contract.mdx (Dutch) --- .../src/pages/nl/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/nl/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/nl/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/nl/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From bf897dd1274f2acfc92b089061e38362986e030a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:21 -0400 Subject: [PATCH 0627/1709] New translations get-health.mdx (Dutch) --- website/src/pages/nl/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/monitoring/get-health.mdx b/website/src/pages/nl/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/nl/token-api/monitoring/get-health.mdx +++ b/website/src/pages/nl/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 20b85d0e6c2e160003d8b2d92d041f5a6ff608c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:22 -0400 Subject: [PATCH 0628/1709] New translations get-networks.mdx (Dutch) --- website/src/pages/nl/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/monitoring/get-networks.mdx b/website/src/pages/nl/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..5245d5d5eff4 100644 --- a/website/src/pages/nl/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/nl/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Ondersteunde Netwerken template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From f182777fb32d6c37f63b685e93c7ad4f253aa87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:23 -0400 Subject: [PATCH 0629/1709] New translations get-version.mdx (Dutch) --- website/src/pages/nl/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/monitoring/get-version.mdx b/website/src/pages/nl/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/nl/token-api/monitoring/get-version.mdx +++ b/website/src/pages/nl/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 6653c3ac9b51443fc327cddfe5e9b4ad80927f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:24 -0400 Subject: [PATCH 0630/1709] New translations get-historical-balances-evm-by-address.mdx (Dutch) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/nl/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/nl/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 784ef0be56cbf624906203aa6291111732c2a97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:25 -0400 Subject: [PATCH 0631/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Dutch) --- .../nl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/nl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/nl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 37d53d4d04b395fdce793452fbfff8ead2af7162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:26 -0400 Subject: [PATCH 0632/1709] New translations get-pools-evm.mdx (Dutch) --- website/src/pages/nl/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/nl/token-api/evm/get-pools-evm.mdx b/website/src/pages/nl/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 3be0cd54a7eb8c911fac7bc6bd54196facee23f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:27 -0400 Subject: [PATCH 0633/1709] New translations get-swaps-evm.mdx (Dutch) --- website/src/pages/nl/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/nl/token-api/evm/get-swaps-evm.mdx b/website/src/pages/nl/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 25835cb9d5583bb1e626c205581795bdb46a2b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:28 -0400 Subject: [PATCH 0634/1709] New translations get-transfers-evm.mdx (Dutch) --- website/src/pages/nl/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx b/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 5b5323e681d969f6b7c509c12947f27fd1ea1579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:30 -0400 Subject: [PATCH 0635/1709] New translations api.mdx (Polish) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/pl/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/pl/subgraphs/developing/creating/graph-ts/api.mdx index 5be2530c4d6b..2e256ae18190 100644 --- a/website/src/pages/pl/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/pl/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types From c397c3cef79901c8fef0329d01a0e363e3c01f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:31 -0400 Subject: [PATCH 0636/1709] New translations get-balances-evm-by-address.mdx (Polish) --- .../pages/pl/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/pl/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/pl/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/pl/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From a264859eb0131efa823d4b179cd8948b80f110c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:32 -0400 Subject: [PATCH 0637/1709] New translations get-holders-evm-by-contract.mdx (Polish) --- .../pages/pl/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/pl/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/pl/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/pl/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 0a3df02e58ac64180f5a62b4b37b8719080da661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:33 -0400 Subject: [PATCH 0638/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Polish) --- .../pl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/pl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/pl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/pl/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 1a899465e33f2ac9e87cf28605698ea5635ad87c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:34 -0400 Subject: [PATCH 0639/1709] New translations get-tokens-evm-by-contract.mdx (Polish) --- .../src/pages/pl/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/pl/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/pl/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/pl/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 790fd3e7b2e98c5636831faa1d69c8b3046bc8c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:35 -0400 Subject: [PATCH 0640/1709] New translations get-health.mdx (Polish) --- website/src/pages/pl/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/monitoring/get-health.mdx b/website/src/pages/pl/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/pl/token-api/monitoring/get-health.mdx +++ b/website/src/pages/pl/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 792823f247b9c01339b28149eb6a13862419f998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:36 -0400 Subject: [PATCH 0641/1709] New translations get-networks.mdx (Polish) --- website/src/pages/pl/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/monitoring/get-networks.mdx b/website/src/pages/pl/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..4802dbe2d538 100644 --- a/website/src/pages/pl/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/pl/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Wspierane sieci template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 447b447e5a84210d43f801f54ac8fe536b5d94d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:37 -0400 Subject: [PATCH 0642/1709] New translations get-version.mdx (Polish) --- website/src/pages/pl/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/monitoring/get-version.mdx b/website/src/pages/pl/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/pl/token-api/monitoring/get-version.mdx +++ b/website/src/pages/pl/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 78368e87b319effa340432acc46e60694c6f8daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:38 -0400 Subject: [PATCH 0643/1709] New translations get-historical-balances-evm-by-address.mdx (Polish) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/pl/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/pl/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 1ed392efd7ef6175414922ef0308e58c6612f4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:39 -0400 Subject: [PATCH 0644/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Polish) --- .../pl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/pl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/pl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 690275bcfeb52107546dd97f4fbbf9cd0082951f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:40 -0400 Subject: [PATCH 0645/1709] New translations get-pools-evm.mdx (Polish) --- website/src/pages/pl/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/pl/token-api/evm/get-pools-evm.mdx b/website/src/pages/pl/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 435859acf0ebcbe90435063c92d8eca509671b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:41 -0400 Subject: [PATCH 0646/1709] New translations get-swaps-evm.mdx (Polish) --- website/src/pages/pl/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/pl/token-api/evm/get-swaps-evm.mdx b/website/src/pages/pl/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 89d57a258cc889fc8b4a295219e425a79efc5435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:42 -0400 Subject: [PATCH 0647/1709] New translations get-transfers-evm.mdx (Polish) --- website/src/pages/pl/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx b/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From e7f4ef4689e8cd2f50d785b4cb39f1dea87614a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:44 -0400 Subject: [PATCH 0648/1709] New translations api.mdx (Portuguese) --- .../developing/creating/graph-ts/api.mdx | 99 ++++++++++--------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/website/src/pages/pt/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/pt/subgraphs/developing/creating/graph-ts/api.mdx index ee20c583603e..986540229abe 100644 --- a/website/src/pages/pt/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/pt/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ A biblioteca `@graphprotocol/graph-ts` fornece as seguintes APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Versão | Notas de atualização | -| :-: | --- | -| 0.0.9 | Adiciona novas funções de host [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adiciona validação para existência de campos no schema ao salvar uma entidade. | -| 0.0.7 | Classes `TransactionReceipt` e `Log` adicionadas aos tipos do EthereumCampo
Campo `receipt` adicionado ao objeto Ethereum Event | -| 0.0.6 | Campo `nonce` adicionado ao objeto Ethereum TransactionCampo
`baseFeePerGas` adicionado ao objeto Ethereum Block | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Campo `functionSignature` adicionado ao objeto Ethereum SmartContractCall | -| 0.0.3 | Campo `from` adicionado ao objeto de chamada no Ethereum
`Callethereum.call.address` renomeado para `ethereum.call.to` | -| 0.0.2 | Campo `input` adicionado ao objeto Ethereum Transaction | +| Versão | Notas de atualização | +| :----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adiciona novas funções de host [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adiciona validação para existência de campos no schema ao salvar uma entidade. | +| 0.0.7 | Classes `TransactionReceipt` e `Log` adicionadas aos tipos do EthereumCampo
Campo `receipt` adicionado ao objeto Ethereum Event | +| 0.0.6 | Campo `nonce` adicionado ao objeto Ethereum TransactionCampo
`baseFeePerGas` adicionado ao objeto Ethereum Block | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Campo `functionSignature` adicionado ao objeto Ethereum SmartContractCall | +| 0.0.3 | Campo `from` adicionado ao objeto de chamada no Ethereum
`Callethereum.call.address` renomeado para `ethereum.call.to` | +| 0.0.2 | Campo `input` adicionado ao objeto Ethereum Transaction | ### Tipos Embutidos @@ -166,7 +166,8 @@ _Matemática_ import { TypedMap } from '@graphprotocol/graph-ts' ``` -O `TypedMap` pode servir para armazenar pares de chave e valor (key e value ). Confira [este exemplo](https://github.com/graphprotocol/aragon-subgraph/blob/29dd38680c5e5104d9fdc2f90e740298c67e4a31/individual-dao-subgraph/mappings/constants.ts#L51). +O `TypedMap` pode servir para armazenar pares de chave e valor (key e value +). Confira [este exemplo](https://github.com/graphprotocol/aragon-subgraph/blob/29dd38680c5e5104d9fdc2f90e740298c67e4a31/individual-dao-subgraph/mappings/constants.ts#L51). A classe `TypedMap` tem a seguinte API: @@ -770,44 +771,44 @@ Quando o tipo de um valor é confirmado, ele pode ser convertido num [tipo embut ### Referência de Conversões de Tipos -| Fonte(s) | Destino | Função de conversão | -| -------------------- | -------------------- | ---------------------------- | -| Address | Bytes | nenhum | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() ou s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | nenhum | -| Bytes (assinado) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (não assinado) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() ou s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | nenhum | -| int32 | i32 | nenhum | -| int32 | BigInt | BigInt.fromI32(s) | -| uint24 | i32 | nenhum | -| int64 - int256 | BigInt | nenhum | -| uint32 - uint256 | BigInt | nenhum | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toI64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromBytes(s) | -| String | BigInt | BigInt.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Fonte(s) | Destino | Função de conversão | +| ------------------------ | -------------------- | ------------------------------ | +| Address | Bytes | nenhum | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | String (hexadecimal) | s.toHexString() ou s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | nenhum | +| Bytes (assinado) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (não assinado) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | String (hexadecimal) | s.toHexString() ou s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | nenhum | +| int32 | i32 | nenhum | +| int32 | BigInt | BigInt.fromI32(s) | +| uint24 | i32 | nenhum | +| int64 - int256 | BigInt | nenhum | +| uint32 - uint256 | BigInt | nenhum | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toI64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromBytes(s) | +| String | BigInt | BigInt.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### Metadados de Fontes de Dados From 072b5dcda271d3a340a095c636f9a10199584d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:45 -0400 Subject: [PATCH 0649/1709] New translations get-balances-evm-by-address.mdx (Portuguese) --- .../pages/pt/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/pt/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/pt/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/pt/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 91cd0305e97c1d4ea51402354550ee815b62f05c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:46 -0400 Subject: [PATCH 0650/1709] New translations get-holders-evm-by-contract.mdx (Portuguese) --- .../pages/pt/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/pt/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/pt/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/pt/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From fe22a6a3807c1e0aa151276f8c5d9c948a577e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:47 -0400 Subject: [PATCH 0651/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Portuguese) --- .../pt/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/pt/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/pt/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/pt/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From c2762a5573a0882d46e46ee695b5a877b764dccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:48 -0400 Subject: [PATCH 0652/1709] New translations get-tokens-evm-by-contract.mdx (Portuguese) --- .../src/pages/pt/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/pt/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/pt/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/pt/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 3a3da8a94bdf08ea3d8e2874653ac294438e8c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:49 -0400 Subject: [PATCH 0653/1709] New translations get-health.mdx (Portuguese) --- website/src/pages/pt/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/monitoring/get-health.mdx b/website/src/pages/pt/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/pt/token-api/monitoring/get-health.mdx +++ b/website/src/pages/pt/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From fe79339b90f6b2e6ebb7afaf4b42a79b8a3b050f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:50 -0400 Subject: [PATCH 0654/1709] New translations get-networks.mdx (Portuguese) --- website/src/pages/pt/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/monitoring/get-networks.mdx b/website/src/pages/pt/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..610224ae2896 100644 --- a/website/src/pages/pt/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/pt/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Redes Apoiadas template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From e6261190d4365742ec7a3a959271890478433cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:51 -0400 Subject: [PATCH 0655/1709] New translations get-version.mdx (Portuguese) --- website/src/pages/pt/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/monitoring/get-version.mdx b/website/src/pages/pt/token-api/monitoring/get-version.mdx index 0be6b7e92d04..367aa7e66784 100644 --- a/website/src/pages/pt/token-api/monitoring/get-version.mdx +++ b/website/src/pages/pt/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Versão template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 8a70c03070786f13c5ea5256acc0ccfb60f6f022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:52 -0400 Subject: [PATCH 0656/1709] New translations get-historical-balances-evm-by-address.mdx (Portuguese) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/pt/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/pt/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From f355fc95205866b1a16a9c18059caa532f3bc50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:53 -0400 Subject: [PATCH 0657/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Portuguese) --- .../pt/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/pt/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/pt/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 87f378e2ad68b13cd4c330b6a555291fbf4e45a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:54 -0400 Subject: [PATCH 0658/1709] New translations get-pools-evm.mdx (Portuguese) --- website/src/pages/pt/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/pt/token-api/evm/get-pools-evm.mdx b/website/src/pages/pt/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From d0780b3bbd85c4f9eb386df449875a6857dab2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:55 -0400 Subject: [PATCH 0659/1709] New translations get-swaps-evm.mdx (Portuguese) --- website/src/pages/pt/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/pt/token-api/evm/get-swaps-evm.mdx b/website/src/pages/pt/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 70421ecd97598f01457f4dac72b692beb6dc63e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:57 -0400 Subject: [PATCH 0660/1709] New translations get-transfers-evm.mdx (Portuguese) --- website/src/pages/pt/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx b/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 4fddcc3eaf8bc1944ea53d6210d45266e2dd5163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:58 -0400 Subject: [PATCH 0661/1709] New translations api.mdx (Russian) --- .../developing/creating/graph-ts/api.mdx | 106 +++++++++--------- 1 file changed, 54 insertions(+), 52 deletions(-) diff --git a/website/src/pages/ru/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ru/subgraphs/developing/creating/graph-ts/api.mdx index 4d3c6ff563f5..40ba29383852 100644 --- a/website/src/pages/ru/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ru/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Learn what built-in APIs can be used when writing Subgraph mappings. There are t The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Версия | Примечания к релизу | -| :-: | --- | -| 0.0.9 | Добавлены новые функции хоста [`eth_get_balance`](#balance-of-an-address) и [`hasCode`](#check-if-an-address-a-contract-or-eoa) | -| 0.0.8 | Добавлена проверка наличия полей в схеме при сохранении объекта. | -| 0.0.7 | К типам Ethereum добавлены классы `TransactionReceipt` и `Log`
К объекту Ethereum Event добавлено поле `receipt` | -| 0.0.6 | В объект Ethereum Transaction добавлено поле `nonce`
В объект Ethereum Block добавлено поле `baseFeePerGas` | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | В объект Ethereum SmartContractCall добавлено поле `functionSignature` | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | В объект Ethereum Transaction добавлено поле `input` | +| Версия | Примечания к релизу | +| :----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Добавлены новые функции хоста [`eth_get_balance`](#balance-of-an-address) и [`hasCode`](#check-if-an-address-a-contract-or-eoa) | +| 0.0.8 | Добавлена проверка наличия полей в схеме при сохранении объекта. | +| 0.0.7 | К типам Ethereum добавлены классы `TransactionReceipt` и `Log`
К объекту Ethereum Event добавлено поле `receipt` | +| 0.0.6 | В объект Ethereum Transaction добавлено поле `nonce`
В объект Ethereum Block добавлено поле `baseFeePerGas` | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | В объект Ethereum SmartContractCall добавлено поле `functionSignature` | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | В объект Ethereum Transaction добавлено поле `input` | ### Встроенные типы @@ -233,7 +233,7 @@ Entities written to the store map one-to-one to the `@entity` types defined in t // Импорт класса событий Transfer, сгенерированного из ERC20 ABI import { Transfer as TransferEvent } from '../generated/ERC20/ERC20' -// Импорт типа объекта Transfer, сгенерированного из схемы GraphQL +// Импорт типа объекта Transfer, сгенерированного из схемы GraphQL import { Transfer } from '../generated/schema' событие // Обработчик события передачи @@ -269,6 +269,7 @@ if (transfer == null) { transfer = new Transfer(id) } + // Используйте объект Transfer, как и раньше ``` @@ -292,6 +293,7 @@ if (transfer == null) { transfer = new Transfer(id) } + // Используйте объект Transfer, как и раньше ``` @@ -695,8 +697,8 @@ let data = ipfs.cat(path) import { JSONValue, Value } from '@graphprotocol/graph-ts' export function processItem(value: JSONValue, userData: Value): void { - // Смотрите документацию по JsonValue для получения подробной информации о работе - // со значениями JSON +// Смотрите документацию по JsonValue для получения подробной информации о работе +// со значениями JSON let obj = value.toObject() let id = obj.get('id') let title = obj.get('title') @@ -705,7 +707,7 @@ export function processItem(value: JSONValue, userData: Value): void { return } - // Обратные вызовы также могут создавать объекты +// Обратные вызовы также могут создавать объекты let newItem = new Item(id) newItem.title = title.toString() newitem.parent = userData.toString() // Установите для родителя значение "parentId" @@ -770,44 +772,44 @@ if (value.kind == JSONValueKind.BOOL) { ### Справка по преобразованию типов -| Источник(и) | Место назначения | Функция преобразования | -| -------------------- | -------------------- | ----------------------------- | -| Address | Bytes | отсутствует | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() или s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | отсутствует | -| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() или s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | отсутствует | -| int32 | i32 | отсутствует | -| int32 | BigInt | BigInt.fromI32(s) | -| uint24 | i32 | отсутствует | -| int64 - int256 | BigInt | отсутствует | -| uint32 - uint256 | BigInt | отсутствует | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toU64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromBytes(s) | -| String | BigInt | BigInt.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Источник(и) | Место назначения | Функция преобразования | +| ---------------------- | ------------------------- | ----------------------------------- | +| Address | Bytes | отсутствует | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | String (hexadecimal) | s.toHexString() или s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | отсутствует | +| Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | String (hexadecimal) | s.toHexString() или s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | отсутствует | +| int32 | i32 | отсутствует | +| int32 | BigInt | BigInt.fromI32(s) | +| uint24 | i32 | отсутствует | +| int64 - int256 | BigInt | отсутствует | +| uint32 - uint256 | BigInt | отсутствует | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toU64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromBytes(s) | +| String | BigInt | BigInt.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| String (hexadecimal) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### Метаданные источника данных From a33699b552ce20d1bb45387787ebeeb8322394a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:10:59 -0400 Subject: [PATCH 0662/1709] New translations get-balances-evm-by-address.mdx (Russian) --- .../pages/ru/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ru/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ru/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ru/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From fe42295edd94908ffef5a7c0a78d6bba6ab88809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:00 -0400 Subject: [PATCH 0663/1709] New translations get-holders-evm-by-contract.mdx (Russian) --- .../pages/ru/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ru/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ru/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ru/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From fee1018cf0bc4174b6defaaaacb38211ac542d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:01 -0400 Subject: [PATCH 0664/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Russian) --- .../ru/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ru/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ru/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ru/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 063ed8407c10b03438c466f49094753931edc743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:02 -0400 Subject: [PATCH 0665/1709] New translations get-tokens-evm-by-contract.mdx (Russian) --- .../src/pages/ru/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ru/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ru/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ru/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 1b57d0d41c5af53cd0d78453f9ccd65f5fbf36f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:03 -0400 Subject: [PATCH 0666/1709] New translations get-health.mdx (Russian) --- website/src/pages/ru/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/monitoring/get-health.mdx b/website/src/pages/ru/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ru/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ru/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From ff27fd023f77dc86e3ec1b738913d55b664f0f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:04 -0400 Subject: [PATCH 0667/1709] New translations get-networks.mdx (Russian) --- website/src/pages/ru/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/monitoring/get-networks.mdx b/website/src/pages/ru/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..d61a00a28e17 100644 --- a/website/src/pages/ru/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ru/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Поддерживаемые сети template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From ca8c298819579031fcfa3adebf73bf3fa500a993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:05 -0400 Subject: [PATCH 0668/1709] New translations get-version.mdx (Russian) --- website/src/pages/ru/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/monitoring/get-version.mdx b/website/src/pages/ru/token-api/monitoring/get-version.mdx index 0be6b7e92d04..c5bf2596f00e 100644 --- a/website/src/pages/ru/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ru/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Версия template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 590820ea6a16355b2e2af32d3c8a785c530e838a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:06 -0400 Subject: [PATCH 0669/1709] New translations get-historical-balances-evm-by-address.mdx (Russian) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ru/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ru/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 6d8ffcbc2fd04fbfe2281dc3999506e7236ccbba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:08 -0400 Subject: [PATCH 0670/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Russian) --- .../ru/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ru/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ru/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From af844e8c10839f40ccfb426518c723e5387dbda8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:09 -0400 Subject: [PATCH 0671/1709] New translations get-pools-evm.mdx (Russian) --- website/src/pages/ru/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ru/token-api/evm/get-pools-evm.mdx b/website/src/pages/ru/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 9d896c342b3996e63b4f2ec335531cde9c452c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:10 -0400 Subject: [PATCH 0672/1709] New translations get-swaps-evm.mdx (Russian) --- website/src/pages/ru/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ru/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ru/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From f27a2c3c27121a4e6f84cfea3454278448f15417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:11 -0400 Subject: [PATCH 0673/1709] New translations get-transfers-evm.mdx (Russian) --- website/src/pages/ru/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 4bd41c2199465b73f17836133192bc3eb5f28abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:12 -0400 Subject: [PATCH 0674/1709] New translations api.mdx (Swedish) --- .../developing/creating/graph-ts/api.mdx | 164 ++++++++++-------- 1 file changed, 87 insertions(+), 77 deletions(-) diff --git a/website/src/pages/sv/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/sv/subgraphs/developing/creating/graph-ts/api.mdx index afc7cbab6a60..d001175da07e 100644 --- a/website/src/pages/sv/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/sv/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Versionsanteckningar | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Versionsanteckningar | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Inbyggda typer @@ -163,7 +163,7 @@ _Math_ #### TypedMap ```typescript -import { TypedMap } from '@graphprotocol/graph-ts' +import { TypedMap } from "@graphprotocol/graph-ts"; ``` `TypedMap` can be used to store key-value pairs. See [this example](https://github.com/graphprotocol/aragon-subgraph/blob/29dd38680c5e5104d9fdc2f90e740298c67e4a31/individual-dao-subgraph/mappings/constants.ts#L51). @@ -179,7 +179,7 @@ The `TypedMap` class has the following API: #### Bytes ```typescript -import { Bytes } from '@graphprotocol/graph-ts' +import { Bytes } from "@graphprotocol/graph-ts"; ``` `Bytes` is used to represent arbitrary-length arrays of bytes. This includes Ethereum values of type `bytes`, `bytes32`, etc. @@ -205,7 +205,7 @@ _Operators_ #### Address ```typescript -import { Address } from '@graphprotocol/graph-ts' +import { Address } from "@graphprotocol/graph-ts"; ``` `Address` extends `Bytes` to represent Ethereum `address` values. @@ -218,7 +218,7 @@ It adds the following method on top of the `Bytes` API: ### Store API ```typescript -import { store } from '@graphprotocol/graph-ts' +import { store } from "@graphprotocol/graph-ts"; ``` The `store` API allows to load, save and remove entities from and to the Graph Node store. @@ -231,24 +231,24 @@ Följande är ett vanligt mönster för att skapa entiteter från Ethereum-händ ```typescript // Importera händelseklassen Transfer som genererats från ERC20 ABI -import { Transfer as TransferEvent } from '../generated/ERC20/ERC20' +import { Transfer as TransferEvent } from "../generated/ERC20/ERC20"; // Importera entitetstypen Transfer som genererats från GraphQL-schemat -import { Transfer } from '../generated/schema' +import { Transfer } from "../generated/schema"; // Händelsehanterare för överföring export function handleTransfer(event: TransferEvent): void { // Skapa en Transfer-entitet, med transaktionshash som enhets-ID - let id = event.transaction.hash - let transfer = new Transfer(id) + let id = event.transaction.hash; + let transfer = new Transfer(id); // Ange egenskaper för entiteten med hjälp av händelseparametrarna - transfer.from = event.params.from - transfer.to = event.params.to - transfer.amount = event.params.amount + transfer.from = event.params.from; + transfer.to = event.params.to; + transfer.amount = event.params.amount; // Spara entiteten till lagret - transfer.save() + transfer.save(); } ``` @@ -263,10 +263,10 @@ Each entity must have a unique ID to avoid collisions with other entities. It is Om en entitet redan finns kan den laddas från lagret med följande: ```typescript -let id = event.transaction.hash // eller hur ID konstrueras -let transfer = Transfer.load(id) +let id = event.transaction.hash; // eller hur ID konstrueras +let transfer = Transfer.load(id); if (transfer == null) { - transfer = new Transfer(id) + transfer = new Transfer(id); } // Använd överföringsenheten som tidigare @@ -286,10 +286,10 @@ The store API facilitates the retrieval of entities that were created or updated - For some Subgraphs, these missed lookups can contribute significantly to the indexing time. ```typescript -let id = event.transaction.hash // eller hur ID konstrueras -let transfer = Transfer.loadInBlock(id) +let id = event.transaction.hash; // eller hur ID konstrueras +let transfer = Transfer.loadInBlock(id); if (transfer == null) { - transfer = new Transfer(id) + transfer = new Transfer(id); } // Använd överföringsenheten som tidigare @@ -343,7 +343,7 @@ transfer.amount = ... Det är också möjligt att avaktivera egenskaper med en av följande två instruktioner: ```typescript -transfer.from.unset() +transfer.from.unset(); transfer.from = null ``` @@ -353,14 +353,14 @@ Updating array properties is a little more involved, as the getting an array fro ```typescript // Detta kommer inte att fungera -entity.numbers.push(BigInt.fromI32(1)) -entity.save() +entity.numbers.push(BigInt.fromI32(1)); +entity.save(); // Detta kommer att fungera -let numbers = entity.numbers -numbers.push(BigInt.fromI32(1)) -entity.numbers = numbers -entity.save() +let numbers = entity.numbers; +numbers.push(BigInt.fromI32(1)); +entity.numbers = numbers; +entity.save(); ``` #### Ta bort entiteter från lagret @@ -398,12 +398,12 @@ type Transfer @entity { and a `Transfer(address,address,uint256)` event signature on Ethereum, the `from`, `to` and `amount` values of type `address`, `address` and `uint256` are converted to `Address` and `BigInt`, allowing them to be passed on to the `Bytes!` and `BigInt!` properties of the `Transfer` entity: ```typescript -let id = event.transaction.hash -let transfer = new Transfer(id) -transfer.from = event.params.from -transfer.to = event.params.to -transfer.amount = event.params.amount -transfer.save() +let id = event.transaction.hash; +let transfer = new Transfer(id); +transfer.from = event.params.from; +transfer.to = event.params.to; +transfer.amount = event.params.amount; +transfer.save(); ``` #### Händelser och Block/Transaktionsdata @@ -489,16 +489,19 @@ En vanlig mönster är att komma åt kontraktet från vilket en händelse härst ```typescript // Importera den genererade kontraktsklassen och den genererade klassen för överföringshändelser -import { ERC20Contract, Transfer as TransferEvent } from '../generated/ERC20Contract/ERC20Contract' +import { + ERC20Contract, + Transfer as TransferEvent, +} from "../generated/ERC20Contract/ERC20Contract"; // Importera den genererade entitetsklassen -import { Transfer } from '../generated/schema' +import { Transfer } from "../generated/schema"; export function handleTransfer(event: TransferEvent) { // Bind kontraktet till den adress som skickade händelsen - let contract = ERC20Contract.bind(event.address) + let contract = ERC20Contract.bind(event.address); // Åtkomst till tillståndsvariabler och funktioner genom att anropa dem - let erc20Symbol = contract.symbol() + let erc20Symbol = contract.symbol(); } ``` @@ -515,12 +518,12 @@ If the read-only methods of your contract may revert, then you should handle tha - For example, the Gravity contract exposes the `gravatarToOwner` method. This code would be able to handle a revert in that method: ```typescript -let gravitera = gravitera.bind(event.address) -let callResult = gravitera_gravatarToOwner(gravatar) +let gravitera = gravitera.bind(event.address); +let callResult = gravitera_gravatarToOwner(gravatar); if (callResult.reverted) { - log.info('getGravatar reverted', []) + log.info("getGravatar reverted", []); } else { - let owner = callResult.value + let owner = callResult.value; } ``` @@ -579,7 +582,7 @@ let isContract = ethereum.hasCode(eoa).inner // returns false ### API för loggning ```typescript -import { log } from '@graphprotocol/graph-ts' +import { log } from "@graphprotocol/graph-ts"; ``` The `log` API allows Subgraphs to log information to the Graph Node standard output as well as Graph Explorer. Messages can be logged using different log levels. A basic format string syntax is provided to compose log messages from argument. @@ -595,7 +598,11 @@ The `log` API includes the following functions: The `log` API takes a format string and an array of string values. It then replaces placeholders with the string values from the array. The first `{}` placeholder gets replaced by the first value in the array, the second `{}` placeholder gets replaced by the second value and so on. ```typescript -log.info('Message to be displayed: {}, {}, {}', [value.toString(), anotherValue.toString(), 'already a string']) +log.info("Message to be displayed: {}, {}, {}", [ + value.toString(), + anotherValue.toString(), + "already a string", +]); ``` #### Loggning av ett eller flera värden @@ -618,11 +625,11 @@ export function handleSomeEvent(event: SomeEvent): void { I exemplet nedan loggas endast det första värdet i argument arrayen, trots att arrayen innehåller tre värden. ```typescript -let myArray = ['A', 'B', 'C'] +let myArray = ["A", "B", "C"]; export function handleSomeEvent(event: SomeEvent): void { // Visar : "Mitt värde är: A" (Även om tre värden skickas till `log.info`) - log.info('Mitt värde är: {}', myArray) + log.info("Mitt värde är: {}", myArray); } ``` @@ -631,11 +638,14 @@ export function handleSomeEvent(event: SomeEvent): void { Each entry in the arguments array requires its own placeholder `{}` in the log message string. The below example contains three placeholders `{}` in the log message. Because of this, all three values in `myArray` are logged. ```typescript -let myArray = ['A', 'B', 'C'] +let myArray = ["A", "B", "C"]; export function handleSomeEvent(event: SomeEvent): void { // Visar: "Mitt första värde är: A, andra värdet är: B, tredje värdet är: C" - log.info('My first value is: {}, second value is: {}, third value is: {}', myArray) + log.info( + "My first value is: {}, second value is: {}, third value is: {}", + myArray + ); } ``` @@ -646,7 +656,7 @@ För att visa ett specifikt värde i arrayen måste det indexeras och tillhandah ```typescript export function handleSomeEvent(event: SomeEvent): void { // Visar : "Mitt tredje värde är C" - log.info('My third value is: {}', [myArray[2]]) + log.info("My third value is: {}", [myArray[2]]); } ``` @@ -655,21 +665,21 @@ export function handleSomeEvent(event: SomeEvent): void { I exemplet nedan loggas blocknummer, blockhash och transaktionshash från en händelse: ```typescript -import { log } from '@graphprotocol/graph-ts' +import { log } from "@graphprotocol/graph-ts"; export function handleSomeEvent(event: SomeEvent): void { - log.debug('Block number: {}, block hash: {}, transaction hash: {}', [ + log.debug("Block number: {}, block hash: {}, transaction hash: {}", [ event.block.number.toString(), // "47596000" event.block.hash.toHexString(), // "0x..." event.transaction.hash.toHexString(), // "0x..." - ]) + ]); } ``` ### IPFS API ```typescript -import { ipfs } from '@graphprotocol/graph-ts' +import { ipfs } from "@graphprotocol/graph-ts" ``` Smart contracts occasionally anchor IPFS files onchain. This allows mappings to obtain the IPFS hashes from the contract and read the corresponding files from IPFS. The file data will be returned as `Bytes`, which usually requires further processing, e.g. with the `json` API documented later on this page. @@ -678,13 +688,13 @@ För att läsa en fil från IPFS med en given IPFS-hash eller sökväg görs fö ```typescript // Placera detta i en händelsehanterare i mappningen -let hash = 'QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D' -let data = ipfs.cat(hash) +let hash = "QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D"; +let data = ipfs.cat(hash); // Sökvägar som `QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/Makefile` // som inkluderar filer i kataloger stöds också -let path = 'QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/Makefile' -let data = ipfs.cat(path) +let path = "QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/Makefile"; +let data = ipfs.cat(path); ``` **Note:** `ipfs.cat` is not deterministic at the moment. If the file cannot be retrieved over the IPFS network before the request times out, it will return `null`. Due to this, it's always worth checking the result for `null`. @@ -692,31 +702,31 @@ let data = ipfs.cat(path) It is also possible to process larger files in a streaming fashion with `ipfs.map`. The function expects the hash or path for an IPFS file, the name of a callback, and flags to modify its behavior: ```typescript -import { JSONValue, Value } from '@graphprotocol/graph-ts' +import { JSONValue, Value } from "@graphprotocol/graph-ts"; export function processItem(value: JSONValue, userData: Value): void { // Se JSONValue-dokumentationen för mer information om hur man hanterar // med JSON-värden - let obj = value.toObject() - let id = obj.get('id') - let title = obj.get('title') + let obj = value.toObject(); + let id = obj.get("id"); + let title = obj.get("title"); if (!id || !title) { - return + return; } // Callbacks kan också skapa enheter - let newItem = new Item(id) - newItem.title = title.toString() - newitem.parent = userData.toString() // Ange parent till "parentId" - newitem.save() + let newItem = new Item(id); + newItem.title = title.toString(); + newitem.parent = userData.toString(); // Ange parent till "parentId" + newitem.save(); } // Placera detta i en händelsehanterare i mappningen -ipfs.map('Qm...', 'processItem', Value.fromString('parentId'), ['json']) +ipfs.map("Qm...", "processItem", Value.fromString("parentId"), ["json"]); // Alternativt kan du använda `ipfs.mapJSON`. -ipfs.mapJSON('Qm...', 'processItem', Value.fromString('parentId')) +ipfs.mapJSON("Qm...", "processItem", Value.fromString("parentId")); ``` The only flag currently supported is `json`, which must be passed to `ipfs.map`. With the `json` flag, the IPFS file must consist of a series of JSON values, one value per line. The call to `ipfs.map` will read each line in the file, deserialize it into a `JSONValue` and call the callback for each of them. The callback can then use entity operations to store data from the `JSONValue`. Entity changes are stored only when the handler that called `ipfs.map` finishes successfully; in the meantime, they are kept in memory, and the size of the file that `ipfs.map` can process is therefore limited. @@ -726,7 +736,7 @@ On success, `ipfs.map` returns `void`. If any invocation of the callback causes ### Crypto API ```typescript -import { crypto } from '@graphprotocol/graph-ts' +import { crypto } from "@graphprotocol/graph-ts"; ``` The `crypto` API makes a cryptographic functions available for use in mappings. Right now, there is only one: @@ -736,7 +746,7 @@ The `crypto` API makes a cryptographic functions available for use in mappings. ### JSON API ```typescript -import { json, JSONValueKind } from '@graphprotocol/graph-ts' +import { json, JSONValueKind } from "@graphprotocol/graph-ts" ``` JSON data can be parsed using the `json` API: From 2391af3bc046f2a8910e5dfe2e3590390ce4aebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:14 -0400 Subject: [PATCH 0675/1709] New translations get-balances-evm-by-address.mdx (Swedish) --- .../pages/sv/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/sv/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/sv/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/sv/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 9421d2edf2eed6eb7cd4d93909132d8c1cdb768f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:15 -0400 Subject: [PATCH 0676/1709] New translations get-holders-evm-by-contract.mdx (Swedish) --- .../pages/sv/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/sv/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/sv/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/sv/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From fddaa0094aefdd67c15838837df07f3cd75b0753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:16 -0400 Subject: [PATCH 0677/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Swedish) --- .../sv/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/sv/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/sv/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/sv/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 2e4e6759bd435c6c1cf48125ce97269e7c2ebbff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:17 -0400 Subject: [PATCH 0678/1709] New translations get-tokens-evm-by-contract.mdx (Swedish) --- .../src/pages/sv/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/sv/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/sv/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/sv/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 534f227a32ce253f9068259579d147850f83e833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:18 -0400 Subject: [PATCH 0679/1709] New translations get-health.mdx (Swedish) --- website/src/pages/sv/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/monitoring/get-health.mdx b/website/src/pages/sv/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/sv/token-api/monitoring/get-health.mdx +++ b/website/src/pages/sv/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 012bdcb38facf32b061a3969bacab0837a1808bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:19 -0400 Subject: [PATCH 0680/1709] New translations get-networks.mdx (Swedish) --- website/src/pages/sv/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/monitoring/get-networks.mdx b/website/src/pages/sv/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..b03670658fb1 100644 --- a/website/src/pages/sv/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/sv/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Nätverk som stöds template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From b49176a55c3240533568b992303c6820a1d704b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:20 -0400 Subject: [PATCH 0681/1709] New translations get-version.mdx (Swedish) --- website/src/pages/sv/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/monitoring/get-version.mdx b/website/src/pages/sv/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/sv/token-api/monitoring/get-version.mdx +++ b/website/src/pages/sv/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From cac14fb1bfaec41fa0782aab4999b4a246e07121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:21 -0400 Subject: [PATCH 0682/1709] New translations get-historical-balances-evm-by-address.mdx (Swedish) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/sv/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/sv/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 22467c78450827424a6da991f981d94f2e0f8fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:22 -0400 Subject: [PATCH 0683/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Swedish) --- .../sv/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/sv/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/sv/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 5e82163589f8ce115ce2907e8341ffc92a743989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:23 -0400 Subject: [PATCH 0684/1709] New translations get-pools-evm.mdx (Swedish) --- website/src/pages/sv/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/sv/token-api/evm/get-pools-evm.mdx b/website/src/pages/sv/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 67047d79f6560d0d487803c3b52574dae3666655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:24 -0400 Subject: [PATCH 0685/1709] New translations get-swaps-evm.mdx (Swedish) --- website/src/pages/sv/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/sv/token-api/evm/get-swaps-evm.mdx b/website/src/pages/sv/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From d9aa79ae8f62d609ac3becdcfbe4329f7a08f7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:25 -0400 Subject: [PATCH 0686/1709] New translations get-transfers-evm.mdx (Swedish) --- website/src/pages/sv/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx b/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From b61f59ad480508d3719c3d93bd4c6c10a1311eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:27 -0400 Subject: [PATCH 0687/1709] New translations api.mdx (Turkish) --- .../developing/creating/graph-ts/api.mdx | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/website/src/pages/tr/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/tr/subgraphs/developing/creating/graph-ts/api.mdx index 1b8f899e6161..28bb6b793eb1 100644 --- a/website/src/pages/tr/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/tr/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Dil eşlemeleri AssemblyScript ile yazıldığından, [AssemblyScript wiki'sinde The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Sürüm | Sürüm Notları | -| :-: | --- | -| 0.0.9 | Yeni host fonksiyonları ekler: [`eth_get_balance`](#balance-of-an-address) ve [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Bir varlığı kaydederken şemadaki alanların varlığını doğrulama mekanizması ekler. | -| 0.0.7 | Ethereum türlerine `TransactionReceipt` ve `Log` sınıfları eklendi
Ethereum Event nesnesine `receipt` alanı eklendi | -| 0.0.6 | Ethereum Transaction nesnesine `nonce` alanı eklendi
Ethereum Block nesnesine `baseFeePerGas` eklendi | +| Sürüm | Sürüm Notları | +| :---: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Yeni host fonksiyonları ekler: [`eth_get_balance`](#balance-of-an-address) ve [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Bir varlığı kaydederken şemadaki alanların varlığını doğrulama mekanizması ekler. | +| 0.0.7 | Ethereum türlerine `TransactionReceipt` ve `Log` sınıfları eklendi
Ethereum Event nesnesine `receipt` alanı eklendi | +| 0.0.6 | Ethereum Transaction nesnesine `nonce` alanı eklendi
Ethereum Block nesnesine `baseFeePerGas` eklendi | | 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Ethereum SmartContractCall nesnesine `functionSignature` alanı eklendi | -| 0.0.3 | Ethereum Call nesnesine `from` alanı eklendi
`ethereum.call.address`, `ethereum.call.to` olarak yeniden adlandırıldı | -| 0.0.2 | Ethereum Transaction nesnesine `input` alanı eklendi | +| 0.0.4 | Ethereum SmartContractCall nesnesine `functionSignature` alanı eklendi | +| 0.0.3 | Ethereum Call nesnesine `from` alanı eklendi
`ethereum.call.address`, `ethereum.call.to` olarak yeniden adlandırıldı | +| 0.0.2 | Ethereum Transaction nesnesine `input` alanı eklendi | ### Dahili Türler @@ -241,15 +241,15 @@ export function handleTransfer(event: TransferEvent): void { // İşlem hash'ını olay kimliği olarak kullanarak bir Transfer varlığı oluşturun let id = event.transaction.hash let transfer = new Transfer(id) - + // Olay parametrelerini kullanarak varlığın özelliklerini ayarlayın transfer.from = event.params.from transfer.to = event.params.to transfer.amount = event.params.amount - + // Varlığı depoya kaydedin transfer.save() -} + } ``` Zincir işlenirken bir `Transfer` olayıyla karşılaşıldığında, oluşturulan `Transfer` türü (burada varlık türüyle adlandırma çakışmasını önlemek için `TransferEvent` olarak adlandırılmıştır) kullanılarak `handleTransfer` olay işleyicisine aktarılır. Bu tür, olayın ana işlemi ve parametreleri gibi verilere erişim sağlar. @@ -771,44 +771,44 @@ Bir değerin türü kesin olduğunda, aşağıdaki yöntemlerden biri kullanıla ### Tip Dönüşümleri Referansı -| Kaynak(lar) | Hedef | Dönüşüm fonksiyonu | -| ----------------- | ----------------- | ---------------------------- | -| Address | Bytes | yok | -| Address | String | s.toHexString() | -| BigDecimal | String | s.toString() | -| BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | Dizgi (onaltılık) | s.toHexString() or s.toHex() | -| BigInt | String (unicode) | s.toString() | -| BigInt | i32 | s.toI32() | -| Boolean | Boolean | yok | -| Bytes (işaretli) | BigInt | BigInt.fromSignedBytes(s) | -| Bytes (işaretsiz) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | Dizgi (onaltılık) | s.toHexString() or s.toHex() | -| Bytes | String (unicode) | s.toString() | -| Bytes | String (base58) | s.toBase58() | -| Bytes | i32 | s.toI32() | -| Bytes | u32 | s.toU32() | -| Bytes | JSON | json.fromBytes(s) | -| int8 | i32 | yok | -| int32 | i32 | yok | -| int32 | BigInt | BigInt.fromI32(s) | -| uint24 | i32 | yok | -| int64 - int256 | BigInt | yok | -| uint32 - uint256 | BigInt | yok | -| JSON | boolean | s.toBool() | -| JSON | i64 | s.toI64() | -| JSON | u64 | s.toU64() | -| JSON | f64 | s.toF64() | -| JSON | BigInt | s.toBigInt() | -| JSON | string | s.toString() | -| JSON | Array | s.toArray() | -| JSON | Object | s.toObject() | -| String | Address | Address.fromString(s) | -| Bytes | Address | Address.fromBytes(s) | -| String | BigInt | BigInt.fromString(s) | -| String | BigDecimal | BigDecimal.fromString(s) | -| Dizgi (onaltılık) | Bytes | ByteArray.fromHexString(s) | -| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | +| Kaynak(lar) | Hedef | Dönüşüm fonksiyonu | +| ---------------------- | -------------------- | ---------------------------- | +| Address | Bytes | yok | +| Address | String | s.toHexString() | +| BigDecimal | String | s.toString() | +| BigInt | BigDecimal | s.toBigDecimal() | +| BigInt | Dizgi (onaltılık) | s.toHexString() or s.toHex() | +| BigInt | String (unicode) | s.toString() | +| BigInt | i32 | s.toI32() | +| Boolean | Boolean | yok | +| Bytes (işaretli) | BigInt | BigInt.fromSignedBytes(s) | +| Bytes (işaretsiz) | BigInt | BigInt.fromUnsignedBytes(s) | +| Bytes | Dizgi (onaltılık) | s.toHexString() or s.toHex() | +| Bytes | String (unicode) | s.toString() | +| Bytes | String (base58) | s.toBase58() | +| Bytes | i32 | s.toI32() | +| Bytes | u32 | s.toU32() | +| Bytes | JSON | json.fromBytes(s) | +| int8 | i32 | yok | +| int32 | i32 | yok | +| int32 | BigInt | BigInt.fromI32(s) | +| uint24 | i32 | yok | +| int64 - int256 | BigInt | yok | +| uint32 - uint256 | BigInt | yok | +| JSON | boolean | s.toBool() | +| JSON | i64 | s.toI64() | +| JSON | u64 | s.toU64() | +| JSON | f64 | s.toF64() | +| JSON | BigInt | s.toBigInt() | +| JSON | string | s.toString() | +| JSON | Array | s.toArray() | +| JSON | Object | s.toObject() | +| String | Address | Address.fromString(s) | +| Bytes | Address | Address.fromBytes(s) | +| String | BigInt | BigInt.fromString(s) | +| String | BigDecimal | BigDecimal.fromString(s) | +| Dizgi (onaltılık) | Bytes | ByteArray.fromHexString(s) | +| String (UTF-8) | Bytes | ByteArray.fromUTF8(s) | ### Veri Kaynağı Meta Verileri From 3b5d7a72fb4b2721f4dd674c7890bb9e47066878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:28 -0400 Subject: [PATCH 0688/1709] New translations get-balances-evm-by-address.mdx (Turkish) --- .../pages/tr/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/tr/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/tr/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/tr/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 7574d4f79fde8cde51c1adb3dee894c1363b3561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:29 -0400 Subject: [PATCH 0689/1709] New translations get-holders-evm-by-contract.mdx (Turkish) --- .../pages/tr/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/tr/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/tr/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/tr/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 1690f6c37adab2fe4906dfd729e2b96eac16c7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:30 -0400 Subject: [PATCH 0690/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Turkish) --- .../tr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/tr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/tr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/tr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 9ba7112fcf25434e6a59d5a5fbb14453aa1f76ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:31 -0400 Subject: [PATCH 0691/1709] New translations get-tokens-evm-by-contract.mdx (Turkish) --- .../src/pages/tr/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/tr/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/tr/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/tr/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From b7e4ba4665192b2ad491a244e076dbe406cea0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:32 -0400 Subject: [PATCH 0692/1709] New translations get-health.mdx (Turkish) --- website/src/pages/tr/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/monitoring/get-health.mdx b/website/src/pages/tr/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/tr/token-api/monitoring/get-health.mdx +++ b/website/src/pages/tr/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From b540b5be8c1169b743f43673ee82b8e785abea5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:33 -0400 Subject: [PATCH 0693/1709] New translations get-networks.mdx (Turkish) --- website/src/pages/tr/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/monitoring/get-networks.mdx b/website/src/pages/tr/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..a1cc008fa6f8 100644 --- a/website/src/pages/tr/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/tr/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Desteklenen Ağlar template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From d8ca21b3aae63c926c03cd51ad9cd1ac2b17aa4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:34 -0400 Subject: [PATCH 0694/1709] New translations get-version.mdx (Turkish) --- website/src/pages/tr/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/monitoring/get-version.mdx b/website/src/pages/tr/token-api/monitoring/get-version.mdx index 0be6b7e92d04..3823a3592d09 100644 --- a/website/src/pages/tr/token-api/monitoring/get-version.mdx +++ b/website/src/pages/tr/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Sürüm template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 0cb490ba82f632a989477c8f73368779d9ecd302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:35 -0400 Subject: [PATCH 0695/1709] New translations get-historical-balances-evm-by-address.mdx (Turkish) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/tr/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/tr/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From f79e6845486dadade077c3ac2aca07dbe1134b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:36 -0400 Subject: [PATCH 0696/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Turkish) --- .../tr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/tr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/tr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 1bf41609fe4d781457dc83d720f1b2fe4c0a3e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:37 -0400 Subject: [PATCH 0697/1709] New translations get-pools-evm.mdx (Turkish) --- website/src/pages/tr/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/tr/token-api/evm/get-pools-evm.mdx b/website/src/pages/tr/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From df1c388bd7666f4c942dbd06e9195d62d41ea118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:38 -0400 Subject: [PATCH 0698/1709] New translations get-swaps-evm.mdx (Turkish) --- website/src/pages/tr/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/tr/token-api/evm/get-swaps-evm.mdx b/website/src/pages/tr/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From c5c96fde5213b503139167af5c7ebd3a9ecc8ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:39 -0400 Subject: [PATCH 0699/1709] New translations get-transfers-evm.mdx (Turkish) --- website/src/pages/tr/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From fc2b56afafb685033c3b2a2574e69659d7d102ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:40 -0400 Subject: [PATCH 0700/1709] New translations api.mdx (Ukrainian) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/uk/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/uk/subgraphs/developing/creating/graph-ts/api.mdx index 5be2530c4d6b..2e256ae18190 100644 --- a/website/src/pages/uk/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/uk/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types From 96fc51c96681a57ed1ececa9c731b819c41979c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:42 -0400 Subject: [PATCH 0701/1709] New translations get-balances-evm-by-address.mdx (Ukrainian) --- .../pages/uk/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/uk/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/uk/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/uk/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 41685f091bf5227d36b196c161c07325f671686b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:43 -0400 Subject: [PATCH 0702/1709] New translations get-holders-evm-by-contract.mdx (Ukrainian) --- .../pages/uk/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/uk/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/uk/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/uk/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 3c5a2f4fea5500f64804078f963ed02878d8a241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:44 -0400 Subject: [PATCH 0703/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Ukrainian) --- .../uk/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/uk/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/uk/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/uk/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 4e9e7519e463a7272ea1d3550a1e3939d885895e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:45 -0400 Subject: [PATCH 0704/1709] New translations get-tokens-evm-by-contract.mdx (Ukrainian) --- .../src/pages/uk/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/uk/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/uk/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/uk/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From d1e5bb0d56a1964c1f9744253678e0e54b0d8b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:46 -0400 Subject: [PATCH 0705/1709] New translations get-health.mdx (Ukrainian) --- website/src/pages/uk/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/monitoring/get-health.mdx b/website/src/pages/uk/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/uk/token-api/monitoring/get-health.mdx +++ b/website/src/pages/uk/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 4c1f06d2f1c126de6d2e6626fc5126bd3c6b67be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:47 -0400 Subject: [PATCH 0706/1709] New translations get-networks.mdx (Ukrainian) --- website/src/pages/uk/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/monitoring/get-networks.mdx b/website/src/pages/uk/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..20b5fd29010f 100644 --- a/website/src/pages/uk/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/uk/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Мережі, які підтримуються template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 53028f0f9309481c1be5c48fdff18ec0fdeb3dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:48 -0400 Subject: [PATCH 0707/1709] New translations get-version.mdx (Ukrainian) --- website/src/pages/uk/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/monitoring/get-version.mdx b/website/src/pages/uk/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/uk/token-api/monitoring/get-version.mdx +++ b/website/src/pages/uk/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From d40b6ca4ffeb81ed04d3ba1725613accb4fba7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:49 -0400 Subject: [PATCH 0708/1709] New translations get-historical-balances-evm-by-address.mdx (Ukrainian) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/uk/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/uk/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 368aa96c6f3a224a9582dd1800f024258959c40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:50 -0400 Subject: [PATCH 0709/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Ukrainian) --- .../uk/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/uk/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/uk/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From f8edeb7d71bc692edccda41f67f67a769da655dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:51 -0400 Subject: [PATCH 0710/1709] New translations get-pools-evm.mdx (Ukrainian) --- website/src/pages/uk/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/uk/token-api/evm/get-pools-evm.mdx b/website/src/pages/uk/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 650d3d3d38d32e35cf52c447633a89e419172819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:52 -0400 Subject: [PATCH 0711/1709] New translations get-swaps-evm.mdx (Ukrainian) --- website/src/pages/uk/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/uk/token-api/evm/get-swaps-evm.mdx b/website/src/pages/uk/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 8dfb1bec5f658ae7e6e6696150adfcabe6a523f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:53 -0400 Subject: [PATCH 0712/1709] New translations get-transfers-evm.mdx (Ukrainian) --- website/src/pages/uk/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx b/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 18ed9aa0bdf80d8cf12d9b4b595e53e916a95bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:55 -0400 Subject: [PATCH 0713/1709] New translations api.mdx (Chinese Simplified) --- .../developing/creating/graph-ts/api.mdx | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/website/src/pages/zh/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/zh/subgraphs/developing/creating/graph-ts/api.mdx index 6efd4699dd7b..2d41f9c845fb 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/zh/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ title: 汇编脚本API 子图清单中的 `apiVersion` 指定了由 Graph Node 运行的特定子图的映射 API 版本。 -| 版本 | Release 说明 | -| :-: | --- | -| 0.0.9 | 添加新的主机函数[`eth_get_balance`](#balance-of-an-address) 和 [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | 在保存实体时添加对模式中是否存在字段的验证。 | -| 0.0.7 | 添加了 `TransactionReceipt` 和 `Log` 类到以太坊类型。
已将 `receipt` 字段添加到Ethereum Event对象。 | -| 0.0.6 | 向Ethereum Transaction对象添加了 nonce 字段 向 Etherum Block对象添加
baseFeePerGas字段 | +| 版本 | Release 说明 | +| :---: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | 添加新的主机函数[`eth_get_balance`](#balance-of-an-address) 和 [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | 在保存实体时添加对模式中是否存在字段的验证。 | +| 0.0.7 | 添加了 `TransactionReceipt` 和 `Log` 类到以太坊类型。
已将 `receipt` 字段添加到Ethereum Event对象。 | +| 0.0.6 | 向Ethereum Transaction对象添加了 nonce 字段 向 Etherum Block对象添加
baseFeePerGas字段 | | 0.0.5 | AssemblyScript 升级到版本 0.19.10(这包括重大更改,参阅[`迁移指南`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed 重命名为 `ethereum.transaction.gasLimit\` | -| 0.0.4 | 已向 Ethereum SmartContractCall对象添加了 `functionSignature` 字段。 | -| 0.0.3 | 已向Ethereum Call 对象添加了 `from` 字段。
`ethereum.call.address` 被重命名为 `ethereum.call.to`。 | -| 0.0.2 | 已向Ethereum Transaction对象添加了 `input` 字段。 | +| 0.0.4 | 已向 Ethereum SmartContractCall对象添加了 `functionSignature` 字段。 | +| 0.0.3 | 已向Ethereum Call 对象添加了 `from` 字段。
`ethereum.call.address` 被重命名为 `ethereum.call.to`。 | +| 0.0.2 | 已向Ethereum Transaction对象添加了 `input` 字段。 | ### 内置类型 @@ -534,8 +534,7 @@ import { Address, BigInt, ethereum } from '@graphprotocol/graph-ts' let tupleArray: Array = [ ethereum.Value.fromAddress(Address.fromString('0x0000000000000000000000000000000000000420')), - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(62)), -] + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(62)),] let tuple = tupleArray as ethereum.Tuple @@ -769,19 +768,19 @@ if (value.kind == JSONValueKind.BOOL) { ### 类型转换参考 -| 源类型 | 目标类型 | 转换函数 | +| 源类型 | 目标类型 | 转换函数 | | -------------------- | -------------------- | ---------------------------- | | Address | Bytes | none | | Address | String | s.toHexString() | | BigDecimal | String | s.toString() | | BigInt | BigDecimal | s.toBigDecimal() | -| BigInt | String (hexadecimal) | s.toHexString() 或 s.toHex() | +| BigInt | String (hexadecimal) | s.toHexString() 或 s.toHex() | | BigInt | String (unicode) | s.toString() | | BigInt | i32 | s.toI32() | | Boolean | Boolean | none | | Bytes (signed) | BigInt | BigInt.fromSignedBytes(s) | | Bytes (unsigned) | BigInt | BigInt.fromUnsignedBytes(s) | -| Bytes | String (hexadecimal) | s.toHexString() 或 s.toHex() | +| Bytes | String (hexadecimal) | s.toHexString() 或 s.toHex() | | Bytes | String (unicode) | s.toString() | | Bytes | String (base58) | s.toBase58() | | Bytes | i32 | s.toI32() | From d096ad7b4f5d71cbe26836870a2f98a39d6b7699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:56 -0400 Subject: [PATCH 0714/1709] New translations get-balances-evm-by-address.mdx (Chinese Simplified) --- .../pages/zh/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/zh/token-api/evm/get-balances-evm-by-address.mdx index 799a52e67504..68385ffc4272 100644 --- a/website/src/pages/zh/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/zh/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: 钱包地址代币余额 +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -EVM 余额端点提供了帐户当前代币持有情况的快照。 端点返回本地和ERC-20代币的当前余额,这些代币由一个指定的钱包地址在一个兼容的Etherum-blockchain上持有。 +Provides latest ERC-20 & Native balances by wallet address. From 8a0c32c34b693754d9cce1dda82f1295206bc346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:57 -0400 Subject: [PATCH 0715/1709] New translations get-holders-evm-by-contract.mdx (Chinese Simplified) --- .../pages/zh/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/zh/token-api/evm/get-holders-evm-by-contract.mdx index 8c3776959410..01a52bbf7ad2 100644 --- a/website/src/pages/zh/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/zh/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: 按合约地址分类的代币持有人 +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -EVM 控件端点提供关于持有特定代币地址的信息,包括每个控件持有人的余额。 这有助于分析特定合约的代币分布情况。 +Provides ERC-20 token holder balances by contract address. From 60034daaae51f2e49530a094b491eb41d85e95a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:58 -0400 Subject: [PATCH 0716/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Chinese Simplified) --- .../zh/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/zh/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index 086b1d8a5dc3..ff8f590b0433 100644 --- a/website/src/pages/zh/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/zh/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: 按合约地址列出的代币OHLCV价格 +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -EVM 价格端点以Open/High/Low/Close/Volume (OHCLV) 格式提供定价数据。 +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 34bac1789c422405d911fb739debde4298e34ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:11:59 -0400 Subject: [PATCH 0717/1709] New translations get-tokens-evm-by-contract.mdx (Chinese Simplified) --- .../src/pages/zh/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/zh/token-api/evm/get-tokens-evm-by-contract.mdx index bb65c736edef..aed206c15272 100644 --- a/website/src/pages/zh/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/zh/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: 代币持有人和按合约地址的供应 +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -代币端点提供了来自支持的EVM区块链的具体ERC-20代币合约的元数据。 元数据包括名称、符号、持有者人数、循环供应、小数等等。 +Provides ERC-20 token contract metadata. From b0b9dece422c326c2f3fb11a5c7d1b7abe743236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:00 -0400 Subject: [PATCH 0718/1709] New translations get-health.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/monitoring/get-health.mdx b/website/src/pages/zh/token-api/monitoring/get-health.mdx index ca7c078746e0..e47b05d6e6b9 100644 --- a/website/src/pages/zh/token-api/monitoring/get-health.mdx +++ b/website/src/pages/zh/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: 获取 API 的健康状况 +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +获取 API 的健康状况 From 42ca0e5ae871aa92680c652bca0d9fee1f77efdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:01 -0400 Subject: [PATCH 0719/1709] New translations get-networks.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/monitoring/get-networks.mdx b/website/src/pages/zh/token-api/monitoring/get-networks.mdx index b54ba746cf5d..acc54d08565e 100644 --- a/website/src/pages/zh/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/zh/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: 获取 API 的支持网络 +title: 支持的网络 template: type: openApi apiId: tokenApi operationId: getNetworks --- + +获取 API 的支持网络 From 26eb29654466f4e78490e2431fc7512f0986f404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:02 -0400 Subject: [PATCH 0720/1709] New translations get-version.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/monitoring/get-version.mdx b/website/src/pages/zh/token-api/monitoring/get-version.mdx index 3f7d769d7135..bc0d8484490c 100644 --- a/website/src/pages/zh/token-api/monitoring/get-version.mdx +++ b/website/src/pages/zh/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: 获取API版本 +title: 版本 template: type: openApi apiId: tokenApi operationId: getVersion --- + +获取API版本 From 3bf3f8b443a68ce2b34124bf87d161308446fdd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:03 -0400 Subject: [PATCH 0721/1709] New translations get-historical-balances-evm-by-address.mdx (Chinese Simplified) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/zh/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/zh/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From f8f0eefa7d19ca196629c53ee617a6a8bed4570f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:04 -0400 Subject: [PATCH 0722/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Chinese Simplified) --- .../zh/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/zh/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/zh/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 0f862afab5643dbb02b05db45796900550cd8d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:05 -0400 Subject: [PATCH 0723/1709] New translations get-pools-evm.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/zh/token-api/evm/get-pools-evm.mdx b/website/src/pages/zh/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From da7ed71541884f4705b6a114c7968c1f6e94f9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:06 -0400 Subject: [PATCH 0724/1709] New translations get-swaps-evm.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/zh/token-api/evm/get-swaps-evm.mdx b/website/src/pages/zh/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 667272a65d7108defb129e142e6188bc0d34afd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:08 -0400 Subject: [PATCH 0725/1709] New translations get-transfers-evm.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx b/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 7d854613b136b79e969085f8e53daf21c1451a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:09 -0400 Subject: [PATCH 0726/1709] New translations api.mdx (Urdu (Pakistan)) --- .../developing/creating/graph-ts/api.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/website/src/pages/ur/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/ur/subgraphs/developing/creating/graph-ts/api.mdx index d936e38aa363..638b47728dee 100644 --- a/website/src/pages/ur/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/ur/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| ورزن | جاری کردہ نوٹس | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| ورزن | جاری کردہ نوٹس | +| :---: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | | 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### بلٹ ان اقسام From cd1edb1ac4fb722e2409908b896131b6e69e7e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:10 -0400 Subject: [PATCH 0727/1709] New translations get-balances-evm-by-address.mdx (Urdu (Pakistan)) --- .../pages/ur/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/ur/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/ur/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/ur/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From dc99f5e513459859a1a2b1303da2449b19aa9ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:11 -0400 Subject: [PATCH 0728/1709] New translations get-holders-evm-by-contract.mdx (Urdu (Pakistan)) --- .../pages/ur/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/ur/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/ur/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/ur/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 121e67209c2872c653ee21e55247c86e241737fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:12 -0400 Subject: [PATCH 0729/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Urdu (Pakistan)) --- .../ur/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/ur/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/ur/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/ur/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From b6c343c08bcaaaa6db91c7f334bd76a1435a70c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:14 -0400 Subject: [PATCH 0730/1709] New translations get-tokens-evm-by-contract.mdx (Urdu (Pakistan)) --- .../src/pages/ur/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/ur/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/ur/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/ur/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 1899fc1c0bc0a591643d28ddd9250f55849ca566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:15 -0400 Subject: [PATCH 0731/1709] New translations get-health.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/monitoring/get-health.mdx b/website/src/pages/ur/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/ur/token-api/monitoring/get-health.mdx +++ b/website/src/pages/ur/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 8bee5f9cfae79d450fee1e3ed4a7dcc871d8c9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:16 -0400 Subject: [PATCH 0732/1709] New translations get-networks.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/monitoring/get-networks.mdx b/website/src/pages/ur/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..9a7037621e53 100644 --- a/website/src/pages/ur/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/ur/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: تعاون یافتہ نیٹ ورکس template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 246da026fd3f4968b4dd141ef9a815e01c1d05ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:17 -0400 Subject: [PATCH 0733/1709] New translations get-version.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/monitoring/get-version.mdx b/website/src/pages/ur/token-api/monitoring/get-version.mdx index 0be6b7e92d04..029bb5ee959d 100644 --- a/website/src/pages/ur/token-api/monitoring/get-version.mdx +++ b/website/src/pages/ur/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: ورزن template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From a4ce64ec572deeaf06c19480092dce157587d6c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:18 -0400 Subject: [PATCH 0734/1709] New translations get-historical-balances-evm-by-address.mdx (Urdu (Pakistan)) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/ur/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/ur/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From eb6258c6f5939644ddc17d4261ef88add698046b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:19 -0400 Subject: [PATCH 0735/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Urdu (Pakistan)) --- .../ur/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/ur/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/ur/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From ea7b58129a8c9175582578794987a15c215058aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:20 -0400 Subject: [PATCH 0736/1709] New translations get-pools-evm.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/ur/token-api/evm/get-pools-evm.mdx b/website/src/pages/ur/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 0c3ae315d869b3ef82c1d19e36a7b3fd71efce7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:21 -0400 Subject: [PATCH 0737/1709] New translations get-swaps-evm.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/ur/token-api/evm/get-swaps-evm.mdx b/website/src/pages/ur/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 8dc88c041d652d7c32acd92af7319fd1f367b6ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:22 -0400 Subject: [PATCH 0738/1709] New translations get-transfers-evm.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From aa7e00de1aa33bbbaba578134b62ee3409d22c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:24 -0400 Subject: [PATCH 0739/1709] New translations api.mdx (Vietnamese) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/vi/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/vi/subgraphs/developing/creating/graph-ts/api.mdx index bb95b05932cc..ae9afa6b45bc 100644 --- a/website/src/pages/vi/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/vi/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Phiên bản | Ghi chú phát hành | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Phiên bản | Ghi chú phát hành | +| :-------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Các loại cài sẵn From aaee42f44506a7b8b1d3910e9df905cc806edfe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:25 -0400 Subject: [PATCH 0740/1709] New translations get-balances-evm-by-address.mdx (Vietnamese) --- .../pages/vi/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/vi/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/vi/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/vi/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 825743ea317b5e7ba4d49b815bdf97bf5c909bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:26 -0400 Subject: [PATCH 0741/1709] New translations get-holders-evm-by-contract.mdx (Vietnamese) --- .../pages/vi/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/vi/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/vi/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/vi/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From 6fb3f87b447298fde57f87820a28080064076fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:27 -0400 Subject: [PATCH 0742/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Vietnamese) --- .../vi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/vi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/vi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/vi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From e1de5c105bd59b778c8bbc6d0cf317ba6f699811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:28 -0400 Subject: [PATCH 0743/1709] New translations get-tokens-evm-by-contract.mdx (Vietnamese) --- .../src/pages/vi/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/vi/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/vi/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/vi/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 314a55bff7bd71e58202b7ff4c5b325ff21e178e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:29 -0400 Subject: [PATCH 0744/1709] New translations get-health.mdx (Vietnamese) --- website/src/pages/vi/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/monitoring/get-health.mdx b/website/src/pages/vi/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/vi/token-api/monitoring/get-health.mdx +++ b/website/src/pages/vi/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From 0e72d6d1cedd020b8bf82e446bfd40f2623ed3d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:30 -0400 Subject: [PATCH 0745/1709] New translations get-networks.mdx (Vietnamese) --- website/src/pages/vi/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/monitoring/get-networks.mdx b/website/src/pages/vi/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..a2b2bdb8b031 100644 --- a/website/src/pages/vi/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/vi/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Mạng lưới được hỗ trợ template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 982bf332d8324854256187f901a5db1485fe4a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:31 -0400 Subject: [PATCH 0746/1709] New translations get-version.mdx (Vietnamese) --- website/src/pages/vi/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/monitoring/get-version.mdx b/website/src/pages/vi/token-api/monitoring/get-version.mdx index 0be6b7e92d04..8564bab86882 100644 --- a/website/src/pages/vi/token-api/monitoring/get-version.mdx +++ b/website/src/pages/vi/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Phiên bản template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 4c9046b760a9baefd007d54d09385380955127da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:32 -0400 Subject: [PATCH 0747/1709] New translations get-historical-balances-evm-by-address.mdx (Vietnamese) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/vi/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/vi/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 27a3388d7f793d13a04cd758f3b1ed4808771f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:33 -0400 Subject: [PATCH 0748/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Vietnamese) --- .../vi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/vi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/vi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From ff5db2fbad147029979223480960d85d29991c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:34 -0400 Subject: [PATCH 0749/1709] New translations get-pools-evm.mdx (Vietnamese) --- website/src/pages/vi/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/vi/token-api/evm/get-pools-evm.mdx b/website/src/pages/vi/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 970228e1bc67040b4bf08236d65d8ba7884b5bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:35 -0400 Subject: [PATCH 0750/1709] New translations get-swaps-evm.mdx (Vietnamese) --- website/src/pages/vi/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/vi/token-api/evm/get-swaps-evm.mdx b/website/src/pages/vi/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 67590d17b6992dd5285776539156f4c746d5a843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:36 -0400 Subject: [PATCH 0751/1709] New translations get-transfers-evm.mdx (Vietnamese) --- website/src/pages/vi/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx b/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 5f0ac07b77eb42ac34ba2b8660bc81c5c2a094d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:37 -0400 Subject: [PATCH 0752/1709] New translations api.mdx (Marathi) --- .../developing/creating/graph-ts/api.mdx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/pages/mr/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/mr/subgraphs/developing/creating/graph-ts/api.mdx index c84987c66e17..c4c2e4f17471 100644 --- a/website/src/pages/mr/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/mr/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ The `@graphprotocol/graph-ts` library provides the following APIs: The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| आवृत्ती | रिलीझ नोट्स | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| आवृत्ती | रिलीझ नोट्स | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### अंगभूत प्रकार From b597d03acef7da8ee99c12d79879e50950fba14b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:39 -0400 Subject: [PATCH 0753/1709] New translations get-balances-evm-by-address.mdx (Marathi) --- .../pages/mr/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/mr/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/mr/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/mr/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From f6cd05d42c627cf590b986cad71c02eb774afc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:40 -0400 Subject: [PATCH 0754/1709] New translations get-holders-evm-by-contract.mdx (Marathi) --- .../pages/mr/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/mr/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/mr/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/mr/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From ee0b1328be535716811691d13a7cecc1c55758f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:41 -0400 Subject: [PATCH 0755/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Marathi) --- .../mr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/mr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/mr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/mr/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From d860aff8a2bc49466b438b321c42d1e4dab5c632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:42 -0400 Subject: [PATCH 0756/1709] New translations get-tokens-evm-by-contract.mdx (Marathi) --- .../src/pages/mr/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/mr/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/mr/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/mr/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From 7bf1b862d11285b4005d1659b410de7eb7419b02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:43 -0400 Subject: [PATCH 0757/1709] New translations get-health.mdx (Marathi) --- website/src/pages/mr/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/monitoring/get-health.mdx b/website/src/pages/mr/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/mr/token-api/monitoring/get-health.mdx +++ b/website/src/pages/mr/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From d0f7c7364f0f5531f70145d35e433f9f79755fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:44 -0400 Subject: [PATCH 0758/1709] New translations get-networks.mdx (Marathi) --- website/src/pages/mr/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/monitoring/get-networks.mdx b/website/src/pages/mr/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..f4b65492ed15 100644 --- a/website/src/pages/mr/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/mr/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: Supported Networks template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From d35752e308a4247d4923a706b50c91ca611b0a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:45 -0400 Subject: [PATCH 0759/1709] New translations get-version.mdx (Marathi) --- website/src/pages/mr/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/monitoring/get-version.mdx b/website/src/pages/mr/token-api/monitoring/get-version.mdx index 0be6b7e92d04..b0c7594e8b5e 100644 --- a/website/src/pages/mr/token-api/monitoring/get-version.mdx +++ b/website/src/pages/mr/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: आवृत्ती template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 3a6e9e7f0be1d4d34b733250fe0e86f970ac2461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:46 -0400 Subject: [PATCH 0760/1709] New translations get-historical-balances-evm-by-address.mdx (Marathi) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/mr/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/mr/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From 0a1caabbb3701488cf9e842abe607775ed901636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:47 -0400 Subject: [PATCH 0761/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Marathi) --- .../mr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/mr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/mr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From c588eaff677ff2fc844e0b2fc81e1cc262c2eafb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:48 -0400 Subject: [PATCH 0762/1709] New translations get-pools-evm.mdx (Marathi) --- website/src/pages/mr/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/mr/token-api/evm/get-pools-evm.mdx b/website/src/pages/mr/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From c08b03e0aef6e9c69eb627b8f601402bd663eab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:49 -0400 Subject: [PATCH 0763/1709] New translations get-swaps-evm.mdx (Marathi) --- website/src/pages/mr/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/mr/token-api/evm/get-swaps-evm.mdx b/website/src/pages/mr/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From b92137987d91ebb62a9184fc434b963bc4cb7a42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:50 -0400 Subject: [PATCH 0764/1709] New translations get-transfers-evm.mdx (Marathi) --- website/src/pages/mr/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From e42288fea1791a51c0f3ceb7f87dc9d8a0fde7f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:52 -0400 Subject: [PATCH 0765/1709] New translations api.mdx (Hindi) --- .../developing/creating/graph-ts/api.mdx | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/website/src/pages/hi/subgraphs/developing/creating/graph-ts/api.mdx b/website/src/pages/hi/subgraphs/developing/creating/graph-ts/api.mdx index 1bed291fc89f..e1cb224c81ce 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/graph-ts/api.mdx +++ b/website/src/pages/hi/subgraphs/developing/creating/graph-ts/api.mdx @@ -29,16 +29,16 @@ Learn what built-in APIs can be used when writing Subgraph mappings. There are t The `apiVersion` in the Subgraph manifest specifies the mapping API version which is run by Graph Node for a given Subgraph. -| Version | Release notes | -| :-: | --- | -| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | -| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | -| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | -| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | -| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | -| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | -| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | -| 0.0.2 | Added `input` field to the Ethereum Transaction object | +| Version | Release notes | +| :-----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.0.9 | Adds new host functions [`eth_get_balance`](#balance-of-an-address) & [`hasCode`](#check-if-an-address-is-a-contract-or-eoa) | +| 0.0.8 | Adds validation for existence of fields in the schema when saving an entity. | +| 0.0.7 | Added `TransactionReceipt` and `Log` classes to the Ethereum types
Added `receipt` field to the Ethereum Event object | +| 0.0.6 | Added `nonce` field to the Ethereum Transaction object
Added `baseFeePerGas` to the Ethereum Block object | +| 0.0.5 | AssemblyScript upgraded to version 0.19.10 (this includes breaking changes, please see the [`Migration Guide`](/resources/migration-guides/assemblyscript-migration-guide/))
`ethereum.transaction.gasUsed` renamed to `ethereum.transaction.gasLimit` | +| 0.0.4 | Added `functionSignature` field to the Ethereum SmartContractCall object | +| 0.0.3 | Added `from` field to the Ethereum Call object
`ethereum.call.address` renamed to `ethereum.call.to` | +| 0.0.2 | Added `input` field to the Ethereum Transaction object | ### Built-in Types @@ -595,11 +595,7 @@ The `log` API includes the following functions: The `log` API takes a format string and an array of string values. It then replaces placeholders with the string values from the array. The first `{}` placeholder gets replaced by the first value in the array, the second `{}` placeholder gets replaced by the second value and so on. ```typescript -log.info('संदेश प्रदर्शित किया जाना है: {}, {}, {}', [ - value.toString(), - OtherValue.toString(), - 'पहले से ही एक स्ट्रिंग', -]) +log.info ('संदेश प्रदर्शित किया जाना है: {}, {}, {}', [value.toString (), OtherValue.toString (), 'पहले से ही एक स्ट्रिंग']) ``` #### एक या अधिक मान लॉग करना From 680d476b1ce8fcc1ee8b0186202a2817bef36280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:53 -0400 Subject: [PATCH 0766/1709] New translations get-balances-evm-by-address.mdx (Hindi) --- .../pages/hi/token-api/evm/get-balances-evm-by-address.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/token-api/evm/get-balances-evm-by-address.mdx b/website/src/pages/hi/token-api/evm/get-balances-evm-by-address.mdx index 3386fd078059..68385ffc4272 100644 --- a/website/src/pages/hi/token-api/evm/get-balances-evm-by-address.mdx +++ b/website/src/pages/hi/token-api/evm/get-balances-evm-by-address.mdx @@ -1,9 +1,9 @@ --- -title: Token Balances by Wallet Address +title: Balances by Address template: type: openApi apiId: tokenApi operationId: getBalancesEvmByAddress --- -The EVM Balances endpoint provides a snapshot of an account’s current token holdings. The endpoint returns the current balances of native and ERC-20 tokens held by a specified wallet address on an Ethereum-compatible blockchain. +Provides latest ERC-20 & Native balances by wallet address. From 61675ec12ac69605341afb08e4f776aefbb4b6cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:54 -0400 Subject: [PATCH 0767/1709] New translations get-holders-evm-by-contract.mdx (Hindi) --- .../pages/hi/token-api/evm/get-holders-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/token-api/evm/get-holders-evm-by-contract.mdx b/website/src/pages/hi/token-api/evm/get-holders-evm-by-contract.mdx index 0bb79e41ed54..01a52bbf7ad2 100644 --- a/website/src/pages/hi/token-api/evm/get-holders-evm-by-contract.mdx +++ b/website/src/pages/hi/token-api/evm/get-holders-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders by Contract Address +title: Token Holders template: type: openApi apiId: tokenApi operationId: getHoldersEvmByContract --- -The EVM Holders endpoint provides information about the addresses holding a specific token, including each holder’s balance. This is useful for analyzing token distribution for a particular contract. +Provides ERC-20 token holder balances by contract address. From a5de106372de4cb4977658045a13f9710b5f6d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:55 -0400 Subject: [PATCH 0768/1709] New translations get-ohlc-prices-evm-by-contract.mdx (Hindi) --- .../hi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx b/website/src/pages/hi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx index d1558ddd6e78..ff8f590b0433 100644 --- a/website/src/pages/hi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx +++ b/website/src/pages/hi/token-api/evm/get-ohlc-prices-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token OHLCV prices by Contract Address +title: OHLCV by Contract template: type: openApi apiId: tokenApi operationId: getOhlcPricesEvmByContract --- -The EVM Prices endpoint provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From 74429693aa22aae6925153cf224597bf01e285b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:56 -0400 Subject: [PATCH 0769/1709] New translations get-tokens-evm-by-contract.mdx (Hindi) --- .../src/pages/hi/token-api/evm/get-tokens-evm-by-contract.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/token-api/evm/get-tokens-evm-by-contract.mdx b/website/src/pages/hi/token-api/evm/get-tokens-evm-by-contract.mdx index b6fab8011fc2..aed206c15272 100644 --- a/website/src/pages/hi/token-api/evm/get-tokens-evm-by-contract.mdx +++ b/website/src/pages/hi/token-api/evm/get-tokens-evm-by-contract.mdx @@ -1,9 +1,9 @@ --- -title: Token Holders and Supply by Contract Address +title: Token Metadata template: type: openApi apiId: tokenApi operationId: getTokensEvmByContract --- -The Tokens endpoint delivers contract metadata for a specific ERC-20 token contract from a supported EVM blockchain. Metadata includes name, symbol, number of holders, circulating supply, decimals, and more. +Provides ERC-20 token contract metadata. From f711b16764009ae20ebafc4e56e4c96fc0f408e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:57 -0400 Subject: [PATCH 0770/1709] New translations get-health.mdx (Hindi) --- website/src/pages/hi/token-api/monitoring/get-health.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/monitoring/get-health.mdx b/website/src/pages/hi/token-api/monitoring/get-health.mdx index 57a827b3343b..09f7b954dbf3 100644 --- a/website/src/pages/hi/token-api/monitoring/get-health.mdx +++ b/website/src/pages/hi/token-api/monitoring/get-health.mdx @@ -1,7 +1,9 @@ --- -title: Get health status of the API +title: Health Status template: type: openApi apiId: tokenApi operationId: getHealth --- + +Get health status of the API From f3ae5fdf513fe524b46aca4067f800fa849f486a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:58 -0400 Subject: [PATCH 0771/1709] New translations get-networks.mdx (Hindi) --- website/src/pages/hi/token-api/monitoring/get-networks.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/monitoring/get-networks.mdx b/website/src/pages/hi/token-api/monitoring/get-networks.mdx index 0ea3c485ddb9..66f3d9940efc 100644 --- a/website/src/pages/hi/token-api/monitoring/get-networks.mdx +++ b/website/src/pages/hi/token-api/monitoring/get-networks.mdx @@ -1,7 +1,9 @@ --- -title: Get supported networks of the API +title: समर्थित नेटवर्क template: type: openApi apiId: tokenApi operationId: getNetworks --- + +Get supported networks of the API From 11df87877989e81356352d3d94a3d8b0a74e83d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:12:59 -0400 Subject: [PATCH 0772/1709] New translations get-version.mdx (Hindi) --- website/src/pages/hi/token-api/monitoring/get-version.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/monitoring/get-version.mdx b/website/src/pages/hi/token-api/monitoring/get-version.mdx index 0be6b7e92d04..fa0040807854 100644 --- a/website/src/pages/hi/token-api/monitoring/get-version.mdx +++ b/website/src/pages/hi/token-api/monitoring/get-version.mdx @@ -1,7 +1,9 @@ --- -title: Get the version of the API +title: Version template: type: openApi apiId: tokenApi operationId: getVersion --- + +Get the version of the API From 63285323e685d60fcbdf47b46e5a41fdbe0d03d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:13:00 -0400 Subject: [PATCH 0773/1709] New translations get-historical-balances-evm-by-address.mdx (Hindi) --- .../evm/get-historical-balances-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-historical-balances-evm-by-address.mdx diff --git a/website/src/pages/hi/token-api/evm/get-historical-balances-evm-by-address.mdx b/website/src/pages/hi/token-api/evm/get-historical-balances-evm-by-address.mdx new file mode 100644 index 000000000000..d96ed1b81fa2 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-historical-balances-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: Historical Balances +template: + type: openApi + apiId: tokenApi + operationId: getHistoricalBalancesEvmByAddress +--- + +Provides historical ERC-20 & Native balances by wallet address. From d15f6767907737d4ef132abd83343287f4976468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:13:01 -0400 Subject: [PATCH 0774/1709] New translations get-ohlc-pools-evm-by-pool.mdx (Hindi) --- .../hi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx diff --git a/website/src/pages/hi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx b/website/src/pages/hi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx new file mode 100644 index 000000000000..d5bc5357eadf --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-ohlc-pools-evm-by-pool.mdx @@ -0,0 +1,9 @@ +--- +title: OHLCV by Pool +template: + type: openApi + apiId: tokenApi + operationId: getOhlcPoolsEvmByPool +--- + +Provides pricing data in the Open/High/Low/Close/Volume (OHCLV) format. From be3c79645f70f33476ce3772ebb87dfa1bfbe289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:13:02 -0400 Subject: [PATCH 0775/1709] New translations get-pools-evm.mdx (Hindi) --- website/src/pages/hi/token-api/evm/get-pools-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-pools-evm.mdx diff --git a/website/src/pages/hi/token-api/evm/get-pools-evm.mdx b/website/src/pages/hi/token-api/evm/get-pools-evm.mdx new file mode 100644 index 000000000000..db32376f5a17 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-pools-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Liquidity Pools +template: + type: openApi + apiId: tokenApi + operationId: getPoolsEvm +--- + +Provides Uniswap V2 & V3 liquidity pool metadata. From 2cb68689190d0849668a902103e4329bebce27ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:13:03 -0400 Subject: [PATCH 0776/1709] New translations get-swaps-evm.mdx (Hindi) --- website/src/pages/hi/token-api/evm/get-swaps-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-swaps-evm.mdx diff --git a/website/src/pages/hi/token-api/evm/get-swaps-evm.mdx b/website/src/pages/hi/token-api/evm/get-swaps-evm.mdx new file mode 100644 index 000000000000..0a7697f38c8b --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-swaps-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsEvm +--- + +Provides Uniswap V2 & V3 swap events. From 3968025e59aab9c24c4dd4a3d465f31f1704badf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 18:13:04 -0400 Subject: [PATCH 0777/1709] New translations get-transfers-evm.mdx (Hindi) --- website/src/pages/hi/token-api/evm/get-transfers-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-transfers-evm.mdx diff --git a/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx b/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx new file mode 100644 index 000000000000..2e6571308cdd --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersEvm +--- + +Provides ERC-20 & Native transfer events. From 9bb330313d4bb6314db89da0ac0911bd757a7183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:25 -0400 Subject: [PATCH 0778/1709] New translations supported-networks.mdx (Romanian) --- website/src/pages/ro/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/supported-networks.mdx b/website/src/pages/ro/supported-networks.mdx index 554c558ded7e..bcd50c91681b 100644 --- a/website/src/pages/ro/supported-networks.mdx +++ b/website/src/pages/ro/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 89e4c5ed16412586692e25caeb8e9e98ec453d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:26 -0400 Subject: [PATCH 0779/1709] New translations supported-networks.mdx (French) --- website/src/pages/fr/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/supported-networks.mdx b/website/src/pages/fr/supported-networks.mdx index c1b6ee3fd39c..5ce0074ba40c 100644 --- a/website/src/pages/fr/supported-networks.mdx +++ b/website/src/pages/fr/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio repose sur la stabilité et la fiabilité des technologies sous-jacentes, comme les endpoints JSON-RPC, Firehose et Substreams. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From b1397dca97db8e01ce97a5fd008254014d6e8766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:27 -0400 Subject: [PATCH 0780/1709] New translations supported-networks.mdx (Spanish) --- website/src/pages/es/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/supported-networks.mdx b/website/src/pages/es/supported-networks.mdx index 93a003ce8005..3b3d7eb14227 100644 --- a/website/src/pages/es/supported-networks.mdx +++ b/website/src/pages/es/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 0f188c32a6df0666a9fe02a69c0f88f2049aa90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:28 -0400 Subject: [PATCH 0781/1709] New translations supported-networks.mdx (Arabic) --- website/src/pages/ar/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/supported-networks.mdx b/website/src/pages/ar/supported-networks.mdx index ac7050638264..ac8ea6df8253 100644 --- a/website/src/pages/ar/supported-networks.mdx +++ b/website/src/pages/ar/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 8071a7cc5f8e38cb344bde9e6b30e1c0df7b3a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:30 -0400 Subject: [PATCH 0782/1709] New translations supported-networks.mdx (Czech) --- website/src/pages/cs/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/supported-networks.mdx b/website/src/pages/cs/supported-networks.mdx index 863814948ba7..3c04b4dbbafb 100644 --- a/website/src/pages/cs/supported-networks.mdx +++ b/website/src/pages/cs/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 970f4b616d741005b43160438ffc7e64a08b8749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:31 -0400 Subject: [PATCH 0783/1709] New translations supported-networks.mdx (German) --- website/src/pages/de/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/supported-networks.mdx b/website/src/pages/de/supported-networks.mdx index 1ae4bd5d095b..835ce6df9b0d 100644 --- a/website/src/pages/de/supported-networks.mdx +++ b/website/src/pages/de/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio verlässt sich auf die Stabilität und Zuverlässigkeit der zugrundeliegenden Technologien, z.B. JSON-RPC, Firehose und Substreams Endpunkte. - Subgraphs, die die Gnosis-Kette indizieren, können jetzt mit dem gnosis- Netzwerkidentifikator eingesetzt werden. From f96c09b399cebff1745ac03a36fb450c736762e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:32 -0400 Subject: [PATCH 0784/1709] New translations supported-networks.mdx (Italian) --- website/src/pages/it/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/supported-networks.mdx b/website/src/pages/it/supported-networks.mdx index ef2c28393033..8860d1f382dd 100644 --- a/website/src/pages/it/supported-networks.mdx +++ b/website/src/pages/it/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From f10ccc7cdd1abbdafbab18073abde9c54ce630ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:33 -0400 Subject: [PATCH 0785/1709] New translations supported-networks.mdx (Japanese) --- website/src/pages/ja/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/supported-networks.mdx b/website/src/pages/ja/supported-networks.mdx index 4e138e5575cc..90213669311f 100644 --- a/website/src/pages/ja/supported-networks.mdx +++ b/website/src/pages/ja/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 5d6c4e5350f90ca3105f9906baed4043b8f16dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:34 -0400 Subject: [PATCH 0786/1709] New translations supported-networks.mdx (Korean) --- website/src/pages/ko/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/supported-networks.mdx b/website/src/pages/ko/supported-networks.mdx index ef2c28393033..8860d1f382dd 100644 --- a/website/src/pages/ko/supported-networks.mdx +++ b/website/src/pages/ko/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 4c03909e806e7167ce515d58407e01d23131314a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:35 -0400 Subject: [PATCH 0787/1709] New translations supported-networks.mdx (Dutch) --- website/src/pages/nl/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/supported-networks.mdx b/website/src/pages/nl/supported-networks.mdx index 9ba4b8d0ab99..bf73c201439e 100644 --- a/website/src/pages/nl/supported-networks.mdx +++ b/website/src/pages/nl/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From c0951c27f0ac6f5bcca615c04391573e444253e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:36 -0400 Subject: [PATCH 0788/1709] New translations supported-networks.mdx (Polish) --- website/src/pages/pl/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/supported-networks.mdx b/website/src/pages/pl/supported-networks.mdx index c49e9c3853b2..aef5668b103a 100644 --- a/website/src/pages/pl/supported-networks.mdx +++ b/website/src/pages/pl/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 97e407cca0c4980e397bee90bf45d4abcc41e090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:37 -0400 Subject: [PATCH 0789/1709] New translations supported-networks.mdx (Portuguese) --- website/src/pages/pt/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/supported-networks.mdx b/website/src/pages/pt/supported-networks.mdx index f3c79fbff592..248c3aebdae1 100644 --- a/website/src/pages/pt/supported-networks.mdx +++ b/website/src/pages/pt/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - O Subgraph Studio depende da estabilidade e da confiança das tecnologias subjacentes, por exemplo, JSON-RPC, Firehose e endpoints dos Substreams. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 3e8b46894ca5fd9e87a1a41ae2b95cf12698c668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:38 -0400 Subject: [PATCH 0790/1709] New translations supported-networks.mdx (Russian) --- website/src/pages/ru/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/supported-networks.mdx b/website/src/pages/ru/supported-networks.mdx index 6399dfa3844c..bef59cd934b9 100644 --- a/website/src/pages/ru/supported-networks.mdx +++ b/website/src/pages/ru/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio полагается на стабильность и надежность базовых технологий, например, таких, как JSON-RPC, Firehose и конечных точек Substreams. - Субграфы, индексирующие Gnosis Chain, теперь можно развертывать с идентификатором сети `gnosis`. From 32b7235a50984067fdf059a32f642bfcf5138532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:39 -0400 Subject: [PATCH 0791/1709] New translations supported-networks.mdx (Swedish) --- website/src/pages/sv/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/supported-networks.mdx b/website/src/pages/sv/supported-networks.mdx index 01776006c980..d91330162c93 100644 --- a/website/src/pages/sv/supported-networks.mdx +++ b/website/src/pages/sv/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From d188f0b2d7edf8591afe8013dd2b83ba4928ec74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:41 -0400 Subject: [PATCH 0792/1709] New translations supported-networks.mdx (Turkish) --- website/src/pages/tr/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/supported-networks.mdx b/website/src/pages/tr/supported-networks.mdx index baee4073b30c..faa9ea814c32 100644 --- a/website/src/pages/tr/supported-networks.mdx +++ b/website/src/pages/tr/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio, örneğin JSON-RPC, Firehose ve Substreams uç noktaları gibi temel teknolojilerin istikrarlılığına ve güvenilirliğine bel bağlar. - Gnosis Chain'i endeksleyen subgraph'ler artık `gnosis` ağ tanımlayıcısı ile dağıtılabilir. From de14c4e3b907e363edc79484af3de54072a3d7d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:42 -0400 Subject: [PATCH 0793/1709] New translations supported-networks.mdx (Ukrainian) --- website/src/pages/uk/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/supported-networks.mdx b/website/src/pages/uk/supported-networks.mdx index 6cac2ffa4bac..5f03298564b4 100644 --- a/website/src/pages/uk/supported-networks.mdx +++ b/website/src/pages/uk/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 8ad316348765c1d7b7986f9aec699d9acaec2f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:43 -0400 Subject: [PATCH 0794/1709] New translations supported-networks.mdx (Chinese Simplified) --- website/src/pages/zh/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/supported-networks.mdx b/website/src/pages/zh/supported-networks.mdx index e45f7dfbe97c..1bf28caeabfd 100644 --- a/website/src/pages/zh/supported-networks.mdx +++ b/website/src/pages/zh/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio依赖于底层技术的稳定性和可靠性,例如JSON-RPC、Firehose和Substreams端点。 - 现在可以使用`gnosis`网络标识符部署索引Gnosis链的子图。 From b2a96642a78b5e04c9b7890765986313678dccf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:44 -0400 Subject: [PATCH 0795/1709] New translations supported-networks.mdx (Urdu (Pakistan)) --- website/src/pages/ur/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/supported-networks.mdx b/website/src/pages/ur/supported-networks.mdx index 709ff2193c44..15117baa5291 100644 --- a/website/src/pages/ur/supported-networks.mdx +++ b/website/src/pages/ur/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 2507f871f4396f19b2829b370926f59b41e36ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:45 -0400 Subject: [PATCH 0796/1709] New translations supported-networks.mdx (Vietnamese) --- website/src/pages/vi/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/supported-networks.mdx b/website/src/pages/vi/supported-networks.mdx index f2af01f61c81..aadae2b787a5 100644 --- a/website/src/pages/vi/supported-networks.mdx +++ b/website/src/pages/vi/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 8704bc8cf3762038ae71281c76fdf119c856b350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:46 -0400 Subject: [PATCH 0797/1709] New translations supported-networks.mdx (Marathi) --- website/src/pages/mr/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/supported-networks.mdx b/website/src/pages/mr/supported-networks.mdx index ef2c28393033..8860d1f382dd 100644 --- a/website/src/pages/mr/supported-networks.mdx +++ b/website/src/pages/mr/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - Subgraph Studio relies on the stability and reliability of the underlying technologies, for example JSON-RPC, Firehose and Substreams endpoints. - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 23e3af7dc44f5e6d28098d41e4ded1017d2bf961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 2 May 2025 21:52:47 -0400 Subject: [PATCH 0798/1709] New translations supported-networks.mdx (Hindi) --- website/src/pages/hi/supported-networks.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/supported-networks.mdx b/website/src/pages/hi/supported-networks.mdx index 9ddc02928dbf..8a1e715d3525 100644 --- a/website/src/pages/hi/supported-networks.mdx +++ b/website/src/pages/hi/supported-networks.mdx @@ -4,7 +4,7 @@ hideTableOfContents: true hideContentHeader: true --- -import { getSupportedNetworksStaticProps, SupportedNetworksTable } from '@/supportedNetworks' +import { getSupportedNetworksStaticProps, NetworksTable } from '@/supportedNetworks' import { Heading } from '@/components' import { useI18n } from '@/i18n' @@ -14,7 +14,7 @@ export const getStaticProps = getSupportedNetworksStaticProps {useI18n().t('index.supportedNetworks.title')} - + - सबग्राफ स्टूडियो निर्भर करता है अंतर्निहित प्रौद्योगिकियों की स्थिरता और विश्वसनीयता पर, जैसे JSON-RPC, फायरहोस और सबस्ट्रीम्स एंडपॉइंट्स। - Subgraphs indexing Gnosis Chain can now be deployed with the `gnosis` network identifier. From 77fba95485af88523be9e56c8f1eaaec397484b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:45 -0400 Subject: [PATCH 0799/1709] New translations sinks.mdx (Romanian) --- .../pages/ro/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ro/substreams/developing/sinks.mdx b/website/src/pages/ro/substreams/developing/sinks.mdx index 48c246201e8f..8719fa13ea81 100644 --- a/website/src/pages/ro/substreams/developing/sinks.mdx +++ b/website/src/pages/ro/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 70a6bb514e4b3b082598e24a71e2d62c688490f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:46 -0400 Subject: [PATCH 0800/1709] New translations sinks.mdx (French) --- .../pages/fr/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/fr/substreams/developing/sinks.mdx b/website/src/pages/fr/substreams/developing/sinks.mdx index c56d379e996d..cd4a38843c65 100644 --- a/website/src/pages/fr/substreams/developing/sinks.mdx +++ b/website/src/pages/fr/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choisissez un sink qui répond aux besoins de votre projet. Une fois que vous avez trouvé un package qui répond à vos besoins, vous pouvez choisir la façon dont vous voulez utiliser les données. -Les sinks sont des intégrations qui vous permettent d'envoyer les données extraites vers différentes destinations, telles qu'une base de données SQL, un fichier ou un Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Remarque : certains sinks sont officiellement pris en charge par l'équipe de développement de StreamingFast (c'est-à-dire qu'ils bénéficient d'un soutien actif), mais d'autres sinks sont gérés par la communauté et leur prise en charge n'est pas garantie. - [Base de données SQL](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/) : Configurez une API pour répondre à vos besoins en matière de données et hébergez-la sur The Graph Network. - [Direct Streaming] (https://docs.substreams.dev/how-to-guides/sinks/stream) : Stream en continu des données directement à partir de votre application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub) : Envoyer des données à un sujet PubSub. - [Sinks communautaires] (https://docs.substreams.dev/how-to-guides/sinks/community-sinks) : Découvrez des Sinks de qualité entretenus par la communauté. @@ -26,26 +25,26 @@ Les sinks sont des intégrations qui vous permettent d'envoyer les données extr ### Officiel -| Nom | Support | Responsable de la maintenance | Code Source | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| SDK Go | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| SDK Rust | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| SDK JS | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| Store KV | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Nom | Support | Responsable de la maintenance | Code Source | +| ---------- | ------- | ----------------------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| SDK Go | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| SDK Rust | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| SDK JS | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| Store KV | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Communauté -| Nom | Support | Responsable de la maintenance | Code Source | -| --- | --- | --- | --- | -| MongoDB | C | Communauté | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Fichiers | C | Communauté | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| Store KV | C | Communauté | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Communauté | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Nom | Support | Responsable de la maintenance | Code Source | +| ---------- | ------- | ----------------------------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Communauté | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Fichiers | C | Communauté | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| Store KV | C | Communauté | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Communauté | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Soutien officiel (par l'un des principaux fournisseurs de Substreams) - C = Soutien de la Communauté From 3cd9d6655c5fff25956722d18e29b3eb3500e670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:48 -0400 Subject: [PATCH 0801/1709] New translations sinks.mdx (Spanish) --- .../pages/es/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/es/substreams/developing/sinks.mdx b/website/src/pages/es/substreams/developing/sinks.mdx index 44e6368c9c7b..2f1b4260ba36 100644 --- a/website/src/pages/es/substreams/developing/sinks.mdx +++ b/website/src/pages/es/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](./sps/introduction.mdx): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Nombre | Soporte | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Nombre | Soporte | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Nombre | Soporte | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Nombre | Soporte | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 0d393b310b70491b5e40a7a6e85537c07da9cae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:49 -0400 Subject: [PATCH 0802/1709] New translations sinks.mdx (Arabic) --- .../pages/ar/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ar/substreams/developing/sinks.mdx b/website/src/pages/ar/substreams/developing/sinks.mdx index 34d2f8624e7d..7774ae25769e 100644 --- a/website/src/pages/ar/substreams/developing/sinks.mdx +++ b/website/src/pages/ar/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 126282428793718241eeaf0543ffd271cf1da103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:50 -0400 Subject: [PATCH 0803/1709] New translations sinks.mdx (Czech) --- .../pages/cs/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/cs/substreams/developing/sinks.mdx b/website/src/pages/cs/substreams/developing/sinks.mdx index d89161878fc9..ed04b4b9b053 100644 --- a/website/src/pages/cs/substreams/developing/sinks.mdx +++ b/website/src/pages/cs/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 2d771f79b69a758f459c1ed18d5279311c739e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:51 -0400 Subject: [PATCH 0804/1709] New translations sinks.mdx (German) --- .../pages/de/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/de/substreams/developing/sinks.mdx b/website/src/pages/de/substreams/developing/sinks.mdx index 9902c99e2b3d..f5f20d57336a 100644 --- a/website/src/pages/de/substreams/developing/sinks.mdx +++ b/website/src/pages/de/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Wählen Sie ein Becken, das den Anforderungen Ihres Projekts entspricht. Sobald Sie ein Paket gefunden haben, das Ihren Anforderungen entspricht, können Sie wählen, wie Sie die Daten nutzen möchten. -Senken sind Integrationen, die es Ihnen ermöglichen, die extrahierten Daten an verschiedene Ziele zu senden, z. B. an eine SQL-Datenbank, eine Datei oder einen Subgraphen. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Hinweis: Einige der Sinks werden offiziell vom StreamingFast-Entwicklungsteam unterstützt (d.h. es wird aktiver Support angeboten), aber andere Sinks werden von der Community betrieben und der Support kann nicht garantiert werden. - [SQL-Datenbank](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Senden Sie die Daten an eine Datenbank. -- [Subgraph](/sps/einfuehrung/): Konfigurieren Sie eine API, die Ihren Datenanforderungen entspricht, und hosten Sie sie im The Graph Network. - [Direktes Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Streamen Sie Daten direkt aus Ihrer Anwendung. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Senden von Daten an ein PubSub-Thema. - [[Community Sinks]] (https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Erforschen Sie hochwertige, von der Community unterhaltene Sinks. @@ -26,26 +25,26 @@ Senken sind Integrationen, die es Ihnen ermöglichen, die extrahierten Daten an ### Offiziell -| Name | Support | Maintainer | Quellcode | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Quellcode | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Quellcode | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Quellcode | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Offizielle Unterstützung (durch einen der wichtigsten Substreams-Anbieter) - C = Community Support From ede4deaef272f256290091d27decac5e56ac938c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:52 -0400 Subject: [PATCH 0805/1709] New translations sinks.mdx (Italian) --- .../pages/it/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/it/substreams/developing/sinks.mdx b/website/src/pages/it/substreams/developing/sinks.mdx index 5b96274b08b7..6bd1b0f60fa0 100644 --- a/website/src/pages/it/substreams/developing/sinks.mdx +++ b/website/src/pages/it/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 0982c3437ef8105d640dafd3cb34ace890518052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:54 -0400 Subject: [PATCH 0806/1709] New translations sinks.mdx (Japanese) --- .../pages/ja/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ja/substreams/developing/sinks.mdx b/website/src/pages/ja/substreams/developing/sinks.mdx index 56936182c3aa..6c06a4e86cbb 100644 --- a/website/src/pages/ja/substreams/developing/sinks.mdx +++ b/website/src/pages/ja/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| 名称 | サポート | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| 名称 | サポート | Maintainer | Source Code | +| ---------- | ---- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| 名称 | サポート | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| 名称 | サポート | Maintainer | Source Code | +| ---------- | ---- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From a4168312a58b37c7043a430c6c9341fb2c35f2a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:55 -0400 Subject: [PATCH 0807/1709] New translations sinks.mdx (Korean) --- .../pages/ko/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ko/substreams/developing/sinks.mdx b/website/src/pages/ko/substreams/developing/sinks.mdx index 48c246201e8f..8719fa13ea81 100644 --- a/website/src/pages/ko/substreams/developing/sinks.mdx +++ b/website/src/pages/ko/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From cbea31044a0a3a69328052ac0cbd5c1a6362e4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:56 -0400 Subject: [PATCH 0808/1709] New translations sinks.mdx (Dutch) --- .../pages/nl/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/nl/substreams/developing/sinks.mdx b/website/src/pages/nl/substreams/developing/sinks.mdx index 48c246201e8f..8719fa13ea81 100644 --- a/website/src/pages/nl/substreams/developing/sinks.mdx +++ b/website/src/pages/nl/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 4cf838630ce9ff925441645c93fd53ae8f3ae777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:58 -0400 Subject: [PATCH 0809/1709] New translations sinks.mdx (Polish) --- .../pages/pl/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/pl/substreams/developing/sinks.mdx b/website/src/pages/pl/substreams/developing/sinks.mdx index 48c246201e8f..8719fa13ea81 100644 --- a/website/src/pages/pl/substreams/developing/sinks.mdx +++ b/website/src/pages/pl/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 98000c8c07d7a2220677d5434378bfcb55019ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:35:59 -0400 Subject: [PATCH 0810/1709] New translations sinks.mdx (Portuguese) --- .../pages/pt/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/pt/substreams/developing/sinks.mdx b/website/src/pages/pt/substreams/developing/sinks.mdx index 95118513724c..3ff23412773e 100644 --- a/website/src/pages/pt/substreams/developing/sinks.mdx +++ b/website/src/pages/pt/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Escolha um coletor que atenda às necessidades do seu projeto. Quando encontrar um pacote adequado às suas necessidades, você pode escolher como quer consumir os dados. -Coletores de dados são integrações que lhe permitem enviar os dados extraídos a destinos diferentes, como um banco de dados SQL, um arquivo ou um subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Coletores > Nota: Alguns dos coletores são oficialmente apoiados pela equipa central de programação do StreamingFast (ou seja, há suporte ativo), mas outros coletores são mantidos pela comunidade; por isso, não é garantido que haja suporte. - [Banco de dados SQL](https://docs.substreams.dev/how-to-guides/sinks/sql-sink)\*\*: Envie para um banco de dados. -- [Subgraph](/sps/introduction/)\*\*: Configure uma API para atender às suas necessidades de dados e hospede-a na The Graph Network. - [Transmissão Direta](https://docs.substreams.dev/how-to-guides/sinks/stream)\*\*: Transmita os dados diretamente do seu aplicativo. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub)\*\*: Envie dados para um tópico do PubSub. - [Coletores Comunitários](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore coletores de qualidade, mantidos pela comunidade. @@ -26,26 +25,26 @@ Coletores de dados são integrações que lhe permitem enviar os dados extraído ### Oficiais -| Nome | Suporte | Administrador | Código-fonte | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| SDK para Go | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| SDK para Rust | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| SDK para JavaScript | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| Armazenamento KV | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Nome | Suporte | Administrador | Código-fonte | +| ------------------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| SDK para Go | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| SDK para Rust | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| SDK para JavaScript | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| Armazenamento KV | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Comunidade -| Nome | Suporte | Administrador | Código-fonte | -| --- | --- | --- | --- | -| MongoDB | C | Comunidade | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Comunidade | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| Armazenamento KV | C | Comunidade | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Comunidade | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Nome | Suporte | Administrador | Código-fonte | +| ---------------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Comunidade | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Comunidade | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| Armazenamento KV | C | Comunidade | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Comunidade | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Suporte Oficial (por um dos principais provedores do Substreams) - C = Suporte pela Comunidade From d44a743a085dd7999448ac6014ad2465e8fd43b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:00 -0400 Subject: [PATCH 0811/1709] New translations sinks.mdx (Russian) --- .../pages/ru/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ru/substreams/developing/sinks.mdx b/website/src/pages/ru/substreams/developing/sinks.mdx index c0981c39ae75..73d6fee514e6 100644 --- a/website/src/pages/ru/substreams/developing/sinks.mdx +++ b/website/src/pages/ru/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ title: Подключите свои субпотоки Как только вы найдете пакет, который соответствует Вашим потребностям, Вы можете выбрать способ потребления данных. -Sinks — это интеграции, которые позволяют отправлять извлечённые данные в различные системы-получатели такие как SQL база данных, файл или субграф. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Примечание: Некоторые из sinks официально поддерживаются командой разработчиков ядра StreamingFast (то есть предоставляется активная поддержка), в то время как другие sinks являются проектами, созданными сообществом, и поддержка для них не может быть гарантирована. - [База данных SQL](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Отправьте данные в базу данных. -- [Субграф](/sps/introduction/): Настройте API, чтобы удовлетворить потребности в данных, и разместите его в сети The Graph. - [Прямая трансляция](https://docs.substreams.dev/how-to-guides/sinks/stream): Транслируйте данные напрямую из вашего приложения. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Отправляйте данные в тему PubSub. - [Sinks сообщества](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Изучите качественные sinks, поддерживаемые сообществом. @@ -26,26 +25,26 @@ Sinks — это интеграции, которые позволяют отп ### Официально -| Имя | Поддержка | Мейнтейнер | Исходный код | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Имя | Поддержка | Мейнтейнер | Исходный код | +| ---------- | --------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Сообщество -| Имя | Поддержка | Мейнтейнер | Исходный код | -| --- | --- | --- | --- | -| MongoDB | C | Сообщество | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Сообщество | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Сообщество | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Сообщество | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Имя | Поддержка | Мейнтейнер | Исходный код | +| ---------- | --------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Сообщество | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Сообщество | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Сообщество | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Сообщество | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Официальная поддержка (от одного из основных поставщиков субпотоков) - C = Поддержка сообщества From ca4b4bb147db76689ee15c50db0449b1a5b45f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:02 -0400 Subject: [PATCH 0812/1709] New translations sinks.mdx (Swedish) --- .../pages/sv/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/sv/substreams/developing/sinks.mdx b/website/src/pages/sv/substreams/developing/sinks.mdx index 3b278edbc8fe..662925773030 100644 --- a/website/src/pages/sv/substreams/developing/sinks.mdx +++ b/website/src/pages/sv/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From a787bc9cd0ae2fb5abba58caa9df6735f6703473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:03 -0400 Subject: [PATCH 0813/1709] New translations sinks.mdx (Turkish) --- .../pages/tr/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/tr/substreams/developing/sinks.mdx b/website/src/pages/tr/substreams/developing/sinks.mdx index 4d32cdf4ce1b..ea9a964b3736 100644 --- a/website/src/pages/tr/substreams/developing/sinks.mdx +++ b/website/src/pages/tr/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](./sps/introduction.mdx): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| İsim | Destek | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| İsim | Destek | Maintainer | Source Code | +| ---------- | ------ | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| İsim | Destek | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| İsim | Destek | Maintainer | Source Code | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 09888b82f8096307e85cfd013ab3e42793dbc0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:05 -0400 Subject: [PATCH 0814/1709] New translations sinks.mdx (Ukrainian) --- .../pages/uk/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/uk/substreams/developing/sinks.mdx b/website/src/pages/uk/substreams/developing/sinks.mdx index 48c246201e8f..8719fa13ea81 100644 --- a/website/src/pages/uk/substreams/developing/sinks.mdx +++ b/website/src/pages/uk/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 4aa8f3fd1ab960c474356c6b032f8a843c14a2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:06 -0400 Subject: [PATCH 0815/1709] New translations sinks.mdx (Chinese Simplified) --- .../pages/zh/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/zh/substreams/developing/sinks.mdx b/website/src/pages/zh/substreams/developing/sinks.mdx index fcbc54d84b27..3a604a99759c 100644 --- a/website/src/pages/zh/substreams/developing/sinks.mdx +++ b/website/src/pages/zh/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ title: 将您的子流链接出去 一旦找到符合您需要的包,您可以选择如何消耗数据。 -汇集是一种集成,允许您将提取的数据发送到不同目的地,例如SQL数据库、文件或子图。 +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## 汇集 > 注:部分汇由StreamingFast core development team(即: 但其他汇集是由社区驱动的),因此无法保证支持。 - [SQL 数据库](https://docs.substreams.dev/how-to-guides/sinks/sql-sink):发送数据到数据库。 -- [Subgraph](./sps/introduction.mdx): Configure an API to meet your data needs and host it on The Graph Network. - [直接流](https://docs.substreams.dev/how-to-guides/sinks/stream):直接从您的应用程序流数据。 - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub):将数据发送到一个PubSub主题中。 - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks):探索优质社区维护的汇。 @@ -26,26 +25,26 @@ title: 将您的子流链接出去 ### 官方 -| 名称 | 支持 | 维护人员 | 源代码 | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| 名称 | 支持 | 维护人员 | 源代码 | +| ---------- | -- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### 社区 -| 名称 | 支持 | 维护人员 | 源代码 | -| --- | --- | --- | --- | -| MongoDB | C | 社区 | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | 社区 | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | 社区 | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | 社区 | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| 名称 | 支持 | 维护人员 | 源代码 | +| ---------- | -- | ---- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | 社区 | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | 社区 | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | 社区 | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | 社区 | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = 官方支持(由一个主要的分流提供者) - C = 社区支持 From d4b6960a595a5846433b1632bc296012218899fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:08 -0400 Subject: [PATCH 0816/1709] New translations sinks.mdx (Urdu (Pakistan)) --- .../pages/ur/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/ur/substreams/developing/sinks.mdx b/website/src/pages/ur/substreams/developing/sinks.mdx index dd0135dc1802..c06e6b2afd6f 100644 --- a/website/src/pages/ur/substreams/developing/sinks.mdx +++ b/website/src/pages/ur/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 45151d512a2c23f78915c76d6d3b7ff33985d10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:09 -0400 Subject: [PATCH 0817/1709] New translations sinks.mdx (Vietnamese) --- .../pages/vi/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/vi/substreams/developing/sinks.mdx b/website/src/pages/vi/substreams/developing/sinks.mdx index cda0fb403117..dcb15c74fe20 100644 --- a/website/src/pages/vi/substreams/developing/sinks.mdx +++ b/website/src/pages/vi/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From a38417499615a7bd4315686717680ff71955f701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:10 -0400 Subject: [PATCH 0818/1709] New translations sinks.mdx (Marathi) --- .../pages/mr/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/mr/substreams/developing/sinks.mdx b/website/src/pages/mr/substreams/developing/sinks.mdx index 873e20981407..703063e67c52 100644 --- a/website/src/pages/mr/substreams/developing/sinks.mdx +++ b/website/src/pages/mr/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](/sps/introduction/): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| Name | Support | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Name | Support | Maintainer | Source Code | +| ---------- | ------- | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 19580d615d990c68b8f3a163024efd9dc4f6d9df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 09:36:11 -0400 Subject: [PATCH 0819/1709] New translations sinks.mdx (Hindi) --- .../pages/hi/substreams/developing/sinks.mdx | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/website/src/pages/hi/substreams/developing/sinks.mdx b/website/src/pages/hi/substreams/developing/sinks.mdx index 8978f7af1938..ddac3daea4f1 100644 --- a/website/src/pages/hi/substreams/developing/sinks.mdx +++ b/website/src/pages/hi/substreams/developing/sinks.mdx @@ -8,14 +8,13 @@ Choose a sink that meets your project's needs. Once you find a package that fits your needs, you can choose how you want to consume the data. -Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a Subgraph. +Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database or a file. ## Sinks > Note: Some of the sinks are officially supported by the StreamingFast core development team (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. - [SQL Database](https://docs.substreams.dev/how-to-guides/sinks/sql-sink): Send the data to a database. -- [Subgraph](./sps/introduction.mdx): Configure an API to meet your data needs and host it on The Graph Network. - [Direct Streaming](https://docs.substreams.dev/how-to-guides/sinks/stream): Stream data directly from your application. - [PubSub](https://docs.substreams.dev/how-to-guides/sinks/pubsub): Send data to a PubSub topic. - [Community Sinks](https://docs.substreams.dev/how-to-guides/sinks/community-sinks): Explore quality community maintained sinks. @@ -26,26 +25,26 @@ Sinks are integrations that allow you to send the extracted data to different de ### Official -| नाम | समर्थन | Maintainer | Source Code | -| --- | --- | --- | --- | -| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | -| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | -| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | -| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | -| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | -| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | -| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | -| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | +| नाम | समर्थन | Maintainer | Source Code | +| ---------- | ------ | ------------- | ----------------------------------------------------------------------------------------- | +| SQL | O | StreamingFast | [substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql) | +| Go SDK | O | StreamingFast | [substreams-sink](https://github.com/streamingfast/substreams-sink) | +| Rust SDK | O | StreamingFast | [substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust) | +| JS SDK | O | StreamingFast | [substreams-js](https://github.com/substreams-js/substreams-js) | +| KV Store | O | StreamingFast | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | O | Pinax | [substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| Webhook | O | Pinax | [substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook) | +| CSV | O | Pinax | [substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv) | +| PubSub | O | StreamingFast | [substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub) | ### Community -| नाम | समर्थन | Maintainer | Source Code | -| --- | --- | --- | --- | -| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | -| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | -| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | -| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | +| नाम | समर्थन | Maintainer | Source Code | +| ---------- | ------ | ---------- | ----------------------------------------------------------------------------------------- | +| MongoDB | C | Community | [substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb) | +| Files | C | Community | [substreams-sink-files](https://github.com/streamingfast/substreams-sink-files) | +| KV Store | C | Community | [substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv) | +| Prometheus | C | Community | [substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus) | - O = Official Support (by one of the main Substreams providers) - C = Community Support From 7a38b37e8c7b6decf7e6263a323ec6e9ceb9192f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:29 -0400 Subject: [PATCH 0820/1709] New translations multiple-networks.mdx (Romanian) --- .../ro/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ro/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/ro/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ro/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 95727a11e54faa9bee2571655d2750c20cd05baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:30 -0400 Subject: [PATCH 0821/1709] New translations multiple-networks.mdx (French) --- .../fr/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/fr/subgraphs/developing/deploying/multiple-networks.mdx index 2916c6fa07ad..5e4b27c8b13b 100644 --- a/website/src/pages/fr/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/fr/subgraphs/developing/deploying/multiple-networks.mdx @@ -211,7 +211,7 @@ Chaque Subgraph concerné par cette politique a la possibilité de rétablir la Si un Subgraph se synchronise avec succès, c'est le signe qu'il continuera à fonctionner correctement pour toujours. Toutefois, de nouveaux déclencheurs sur le réseau peuvent entraîner une condition d'erreur non testée dans votre Subgraph ou un retard dû à des problèmes de performance ou à des problèmes avec les opérateurs de nœuds. -Graph Node expose un endpoint GraphQL que vous pouvez interroger pour vérifier l'état de votre subgraph. Sur le service hébergé, il est disponible à `https://api.thegraph.com/index-node/graphql`. Sur un nœud local, il est disponible sur le port `8030/graphql` par défaut. Le schéma complet de ce point d'accès peut être trouvé [ici](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Voici un exemple de requête qui vérifie le statut de la version actuelle d'un subgraph : +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 151bb382afccc7d83279703f807d823fed3641f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:31 -0400 Subject: [PATCH 0822/1709] New translations multiple-networks.mdx (Spanish) --- .../es/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/es/subgraphs/developing/deploying/multiple-networks.mdx index a96efc430a61..33807eefc5be 100644 --- a/website/src/pages/es/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/es/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 365af6d2b2aa59bcd13a276d8eb9545ac47f4efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:33 -0400 Subject: [PATCH 0823/1709] New translations multiple-networks.mdx (Arabic) --- .../ar/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ar/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/ar/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ar/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From a7876036625165129646b03e11303a404e9dd414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:34 -0400 Subject: [PATCH 0824/1709] New translations multiple-networks.mdx (Czech) --- .../cs/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/cs/subgraphs/developing/deploying/multiple-networks.mdx index e9848601ebc7..796f1de30b74 100644 --- a/website/src/pages/cs/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/cs/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 51ef602ec92933b1b12cb9b687560e4be985b035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:35 -0400 Subject: [PATCH 0825/1709] New translations multiple-networks.mdx (German) --- .../de/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/de/subgraphs/developing/deploying/multiple-networks.mdx index 6db33ed6bf1e..9d918a953466 100644 --- a/website/src/pages/de/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/de/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Jeder Subgraph, der von dieser Richtlinie betroffen ist, hat die Möglichkeit, d Wenn ein Subgraph erfolgreich synchronisiert wird, ist das ein gutes Zeichen dafür, dass er für immer gut laufen wird. Neue Auslöser im Netzwerk könnten jedoch dazu führen, dass Ihr Subgraph auf eine ungetestete Fehlerbedingung stößt, oder er könnte aufgrund von Leistungsproblemen oder Problemen mit den Knotenbetreibern ins Hintertreffen geraten. -Graph Node stellt einen GraphQL-Endpunkt zur Verfügung, den Sie abfragen können, um den Status Ihres Subgraphen zu überprüfen. Auf dem gehosteten Dienst ist er unter `https://api.thegraph.com/index-node/graphql` verfügbar. Auf einem lokalen Knoten ist er standardmäßig auf Port `8030/graphql` verfügbar. Das vollständige Schema für diesen Endpunkt finden Sie [hier](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Hier ist ein Datenbeispiel für eine Abfrage, die den Status der aktuellen Version eines Subgraphen überprüft: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From d0f7db8ef07f8cb74ed21df1bd5b5394cd5cb49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:37 -0400 Subject: [PATCH 0826/1709] New translations multiple-networks.mdx (Italian) --- .../it/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/it/subgraphs/developing/deploying/multiple-networks.mdx index f8b9f74c6479..14056f78d173 100644 --- a/website/src/pages/it/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/it/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From afc37faf308dae13f5c203e9da7003ed654687f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:38 -0400 Subject: [PATCH 0827/1709] New translations multiple-networks.mdx (Japanese) --- .../ja/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ja/subgraphs/developing/deploying/multiple-networks.mdx index a43e7a32c7b8..271a81b74cfa 100644 --- a/website/src/pages/ja/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ja/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 5aaeaeeea41c6caa12668d4891e6c456fc9bdb40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:39 -0400 Subject: [PATCH 0828/1709] New translations multiple-networks.mdx (Korean) --- .../ko/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ko/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/ko/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ko/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 0a6c01611a469a54947fdf7d9744bfbf13fdc677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:41 -0400 Subject: [PATCH 0829/1709] New translations multiple-networks.mdx (Dutch) --- .../nl/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/nl/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/nl/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/nl/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From c5535f5f2b72f42ed5c24d5e0430fe0b7fd49a56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:42 -0400 Subject: [PATCH 0830/1709] New translations multiple-networks.mdx (Polish) --- .../pl/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/pl/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/pl/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/pl/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 9df0a0cff89495019a18bfeb08b54dae535538ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:43 -0400 Subject: [PATCH 0831/1709] New translations multiple-networks.mdx (Portuguese) --- .../pt/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/pt/subgraphs/developing/deploying/multiple-networks.mdx index 1a1aca2c7b9e..ee4731e3ff4a 100644 --- a/website/src/pages/pt/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/pt/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From a7317507391fdd563a450eab15b68a24896f095b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:45 -0400 Subject: [PATCH 0832/1709] New translations multiple-networks.mdx (Russian) --- .../ru/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ru/subgraphs/developing/deploying/multiple-networks.mdx index 4f15c642b820..d14ae3c8bc1a 100644 --- a/website/src/pages/ru/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ru/subgraphs/developing/deploying/multiple-networks.mdx @@ -211,7 +211,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 7f3a9a88555003ae1325b984e473b30adc5a5519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:46 -0400 Subject: [PATCH 0833/1709] New translations multiple-networks.mdx (Swedish) --- .../sv/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/sv/subgraphs/developing/deploying/multiple-networks.mdx index b45b0701bfdd..016d1a3970e6 100644 --- a/website/src/pages/sv/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/sv/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 31688e389ee76de7dd3691704e1980e1e677fd57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:48 -0400 Subject: [PATCH 0834/1709] New translations multiple-networks.mdx (Turkish) --- .../tr/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/tr/subgraphs/developing/deploying/multiple-networks.mdx index d401f6ad16b2..9af6e4bb44d7 100644 --- a/website/src/pages/tr/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/tr/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 6d46bb01c4463fb70278d3b57e52cc690f65ed70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:49 -0400 Subject: [PATCH 0835/1709] New translations multiple-networks.mdx (Ukrainian) --- .../uk/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/uk/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/uk/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/uk/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 075ccdaac139e01f31fdb0fb23433c9f471a7a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:50 -0400 Subject: [PATCH 0836/1709] New translations multiple-networks.mdx (Chinese Simplified) --- .../zh/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/zh/subgraphs/developing/deploying/multiple-networks.mdx index 969ec7b95d03..a772d2e49204 100644 --- a/website/src/pages/zh/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/zh/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Studio中的子图版本只有在满足以下条件时才会存档: 如果子图成功同步,这是一个好信号,表明它将永远运行良好。然而,网络上的新触发器可能会导致子图遇到未经测试的错误条件,或者由于性能问题或节点操作符的问题,子图开始落后。 -Graph Node公开了一个GraphQL端点,您可以查询该端点以检查子图的状态。在托管服务上,可以在`https://api.thegraph.com/index-node/graphql`使用。在本地节点的默认情况下,在`8030/graphql`端口上可用。此端点的完整架构可以在[此处](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql)找到。以下是一个检查子图当前版本状态的示例查询: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From cd883e4bfcd4be7a2b42ff03e4a93dfa8e58d4ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:51 -0400 Subject: [PATCH 0837/1709] New translations multiple-networks.mdx (Urdu (Pakistan)) --- .../ur/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/ur/subgraphs/developing/deploying/multiple-networks.mdx index 018d2eb471e7..08562fb93c31 100644 --- a/website/src/pages/ur/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/ur/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 2c88e7b388fe861551bf4d8e3470de429e8df0a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:53 -0400 Subject: [PATCH 0838/1709] New translations multiple-networks.mdx (Vietnamese) --- .../vi/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/vi/subgraphs/developing/deploying/multiple-networks.mdx index 3b2b1bbc70ae..5c8016b18c91 100644 --- a/website/src/pages/vi/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/vi/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 8d8ffd462aa2cba205f27aef7b0021d0fc39a608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:54 -0400 Subject: [PATCH 0839/1709] New translations multiple-networks.mdx (Marathi) --- .../mr/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/mr/subgraphs/developing/deploying/multiple-networks.mdx index 3e34f743a6c0..6fc6fe500de3 100644 --- a/website/src/pages/mr/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/mr/subgraphs/developing/deploying/multiple-networks.mdx @@ -212,7 +212,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From 9b157838b39dd4574b09cb0e3a9631c962f02290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 5 May 2025 15:55:55 -0400 Subject: [PATCH 0840/1709] New translations multiple-networks.mdx (Hindi) --- .../hi/subgraphs/developing/deploying/multiple-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/developing/deploying/multiple-networks.mdx b/website/src/pages/hi/subgraphs/developing/deploying/multiple-networks.mdx index d10ef9160dc6..6a4efc49ef2e 100644 --- a/website/src/pages/hi/subgraphs/developing/deploying/multiple-networks.mdx +++ b/website/src/pages/hi/subgraphs/developing/deploying/multiple-networks.mdx @@ -213,7 +213,7 @@ Every Subgraph affected with this policy has an option to bring the version in q If a Subgraph syncs successfully, that is a good sign that it will continue to run well forever. However, new triggers on the network might cause your Subgraph to hit an untested error condition or it may start to fall behind due to performance issues or issues with the node operators. -Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph. On the hosted service, it is available at `https://api.thegraph.com/index-node/graphql`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: +Graph Node exposes a GraphQL endpoint which you can query to check the status of your Subgraph: `https://indexer.upgrade.thegraph.com/status`. On a local node, it is available on port `8030/graphql` by default. The full schema for this endpoint can be found [here](https://github.com/graphprotocol/graph-node/blob/master/server/index-node/src/schema.graphql). Here is an example query that checks the status of the current version of a Subgraph: ```graphql { From ae219ac88334254dd8b44d8ec8babef576d67ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:52 -0400 Subject: [PATCH 0841/1709] New translations fair-use-policy.mdx (Romanian) --- .../pages/ro/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ro/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ro/subgraphs/fair-use-policy.mdx b/website/src/pages/ro/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/ro/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 808564f9930e51f608e9541104eed3774d62c044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:53 -0400 Subject: [PATCH 0842/1709] New translations upgrade-indexer.mdx (Romanian) --- .../pages/ro/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ro/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ro/subgraphs/upgrade-indexer.mdx b/website/src/pages/ro/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..c314c8a3a1f3 --- /dev/null +++ b/website/src/pages/ro/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From b9c61eee5ea77c56c04358a238a2a7af39d041e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:55 -0400 Subject: [PATCH 0843/1709] New translations fair-use-policy.mdx (French) --- .../pages/fr/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/fr/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/fr/subgraphs/fair-use-policy.mdx b/website/src/pages/fr/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..df3d0b2187b2 --- /dev/null +++ b/website/src/pages/fr/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Aperçu + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 46027cd9dab7f2dcb34f12a3b706ae3498d8739a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:56 -0400 Subject: [PATCH 0844/1709] New translations upgrade-indexer.mdx (French) --- .../pages/fr/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/fr/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/fr/subgraphs/upgrade-indexer.mdx b/website/src/pages/fr/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..6464d5524171 --- /dev/null +++ b/website/src/pages/fr/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Aperçu + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From b1d2005000c4e32232a31b923c8b67e88f417618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:58 -0400 Subject: [PATCH 0845/1709] New translations fair-use-policy.mdx (Spanish) --- .../pages/es/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/es/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/es/subgraphs/fair-use-policy.mdx b/website/src/pages/es/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..14562ee0e5ec --- /dev/null +++ b/website/src/pages/es/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Descripción + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From af73c280b3eff93f830debd6172c6c413dfe3ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:30:59 -0400 Subject: [PATCH 0846/1709] New translations upgrade-indexer.mdx (Spanish) --- .../pages/es/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/es/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/es/subgraphs/upgrade-indexer.mdx b/website/src/pages/es/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..781490f893f2 --- /dev/null +++ b/website/src/pages/es/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Descripción + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From fc4c0b71b216383fcd0c2f277bbc7893d76cb30a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:01 -0400 Subject: [PATCH 0847/1709] New translations fair-use-policy.mdx (Arabic) --- .../pages/ar/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ar/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ar/subgraphs/fair-use-policy.mdx b/website/src/pages/ar/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..9dd13b9993c1 --- /dev/null +++ b/website/src/pages/ar/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## نظره عامة + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 42fb3137e74630804cf1f7b6a89e5ee74e7ce752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:02 -0400 Subject: [PATCH 0848/1709] New translations upgrade-indexer.mdx (Arabic) --- .../pages/ar/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ar/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ar/subgraphs/upgrade-indexer.mdx b/website/src/pages/ar/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..019ffbae4417 --- /dev/null +++ b/website/src/pages/ar/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## نظره عامة + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From b557f4526bce529a03597a160dc89dd452756b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:04 -0400 Subject: [PATCH 0849/1709] New translations fair-use-policy.mdx (Czech) --- .../pages/cs/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/cs/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/cs/subgraphs/fair-use-policy.mdx b/website/src/pages/cs/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..3b1a866eb263 --- /dev/null +++ b/website/src/pages/cs/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Přehled + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 1bee0a3d67a07311ba30e22758d0d05a12033b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:05 -0400 Subject: [PATCH 0850/1709] New translations upgrade-indexer.mdx (Czech) --- .../pages/cs/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/cs/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/cs/subgraphs/upgrade-indexer.mdx b/website/src/pages/cs/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..97672a6b28d4 --- /dev/null +++ b/website/src/pages/cs/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Přehled + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Závěr + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From caf69c8f83a38157f16f899652cd8d4a77babb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:07 -0400 Subject: [PATCH 0851/1709] New translations fair-use-policy.mdx (German) --- .../pages/de/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/de/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/de/subgraphs/fair-use-policy.mdx b/website/src/pages/de/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..6ef14fc646f7 --- /dev/null +++ b/website/src/pages/de/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Überblick + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From cefbaf34604c1559e130a48e7bd41174aeb4b103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:08 -0400 Subject: [PATCH 0852/1709] New translations upgrade-indexer.mdx (German) --- .../pages/de/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/de/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/de/subgraphs/upgrade-indexer.mdx b/website/src/pages/de/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..d658918c5570 --- /dev/null +++ b/website/src/pages/de/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Überblick + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Schlussfolgerung + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From b3a5af26c6fedc908ac5afae8b340969f5bee423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:10 -0400 Subject: [PATCH 0853/1709] New translations fair-use-policy.mdx (Italian) --- .../pages/it/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/it/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/it/subgraphs/fair-use-policy.mdx b/website/src/pages/it/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..822fe1758eff --- /dev/null +++ b/website/src/pages/it/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Panoramica + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From c7afdb0d8d2873525955d189e42ec7e0c93c7895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:12 -0400 Subject: [PATCH 0854/1709] New translations upgrade-indexer.mdx (Italian) --- .../pages/it/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/it/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/it/subgraphs/upgrade-indexer.mdx b/website/src/pages/it/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..0533831f21c8 --- /dev/null +++ b/website/src/pages/it/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Panoramica + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From a25ade7d5df9a4177928af4baa5b2394cd6474f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:13 -0400 Subject: [PATCH 0855/1709] New translations fair-use-policy.mdx (Japanese) --- .../pages/ja/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ja/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ja/subgraphs/fair-use-policy.mdx b/website/src/pages/ja/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..733b54ee4e67 --- /dev/null +++ b/website/src/pages/ja/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## 概要 + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From b404c3df5d9b03c93506b355eb22e126faa2cd85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:15 -0400 Subject: [PATCH 0856/1709] New translations upgrade-indexer.mdx (Japanese) --- .../pages/ja/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ja/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ja/subgraphs/upgrade-indexer.mdx b/website/src/pages/ja/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..9607046ef59d --- /dev/null +++ b/website/src/pages/ja/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## 概要 + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From efe9b1ec3f41779d77accd03d241e0ed9d47348f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:16 -0400 Subject: [PATCH 0857/1709] New translations fair-use-policy.mdx (Korean) --- .../pages/ko/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ko/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ko/subgraphs/fair-use-policy.mdx b/website/src/pages/ko/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/ko/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From af2b09e280c11a98cae74abb6d641ab7331a7ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:18 -0400 Subject: [PATCH 0858/1709] New translations upgrade-indexer.mdx (Korean) --- .../pages/ko/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ko/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ko/subgraphs/upgrade-indexer.mdx b/website/src/pages/ko/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..c314c8a3a1f3 --- /dev/null +++ b/website/src/pages/ko/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 6aacc25a5f0fae9fdc4abda769420fa94718554e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:19 -0400 Subject: [PATCH 0859/1709] New translations fair-use-policy.mdx (Dutch) --- .../pages/nl/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/nl/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/nl/subgraphs/fair-use-policy.mdx b/website/src/pages/nl/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/nl/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 90cfba4ad388bcdb15672893ec8032b346e2c53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:20 -0400 Subject: [PATCH 0860/1709] New translations upgrade-indexer.mdx (Dutch) --- .../pages/nl/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/nl/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/nl/subgraphs/upgrade-indexer.mdx b/website/src/pages/nl/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..c314c8a3a1f3 --- /dev/null +++ b/website/src/pages/nl/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From a255dfc16a4114491b4d4880da1ef0a4d94deec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:22 -0400 Subject: [PATCH 0861/1709] New translations fair-use-policy.mdx (Polish) --- .../pages/pl/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/pl/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/pl/subgraphs/fair-use-policy.mdx b/website/src/pages/pl/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/pl/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From b9d0cbe8f9e71c7f1ef8e7562784bd2b78db7e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:24 -0400 Subject: [PATCH 0862/1709] New translations upgrade-indexer.mdx (Polish) --- .../pages/pl/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/pl/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/pl/subgraphs/upgrade-indexer.mdx b/website/src/pages/pl/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..c314c8a3a1f3 --- /dev/null +++ b/website/src/pages/pl/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From fc3d815b7dd201bd5f5fb46f9d9367264ded1c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:25 -0400 Subject: [PATCH 0863/1709] New translations fair-use-policy.mdx (Portuguese) --- .../pages/pt/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/pt/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/pt/subgraphs/fair-use-policy.mdx b/website/src/pages/pt/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..1a974e215eb5 --- /dev/null +++ b/website/src/pages/pt/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Visão geral + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From f3929e6864aeb9e06b427e38fecaf08f07cfd5bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:26 -0400 Subject: [PATCH 0864/1709] New translations upgrade-indexer.mdx (Portuguese) --- .../pages/pt/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/pt/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/pt/subgraphs/upgrade-indexer.mdx b/website/src/pages/pt/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..dadb9d80e79c --- /dev/null +++ b/website/src/pages/pt/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Visão geral + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusão + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From aca9e69282f28948aba385cb43f395283dec3549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:28 -0400 Subject: [PATCH 0865/1709] New translations fair-use-policy.mdx (Russian) --- .../pages/ru/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ru/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ru/subgraphs/fair-use-policy.mdx b/website/src/pages/ru/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..e1c7d0844d12 --- /dev/null +++ b/website/src/pages/ru/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Обзор + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From ab6724d0db2683e1e8b736b2f05f9377b5505f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:29 -0400 Subject: [PATCH 0866/1709] New translations upgrade-indexer.mdx (Russian) --- .../pages/ru/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ru/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ru/subgraphs/upgrade-indexer.mdx b/website/src/pages/ru/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..70471433c27a --- /dev/null +++ b/website/src/pages/ru/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Обзор + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Заключение + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 7eca12185e7a56c302dc69fbea29efd5940ad2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:31 -0400 Subject: [PATCH 0867/1709] New translations fair-use-policy.mdx (Swedish) --- .../pages/sv/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/sv/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/sv/subgraphs/fair-use-policy.mdx b/website/src/pages/sv/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..51fafb77041e --- /dev/null +++ b/website/src/pages/sv/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Översikt + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From d8da0ea72ca0e2e049c37eb897696b481e333f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:32 -0400 Subject: [PATCH 0868/1709] New translations upgrade-indexer.mdx (Swedish) --- .../pages/sv/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/sv/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/sv/subgraphs/upgrade-indexer.mdx b/website/src/pages/sv/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..e68477767a97 --- /dev/null +++ b/website/src/pages/sv/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Översikt + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From cd314c6d3aa7c957928780f6e70b00e82ccf27c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:34 -0400 Subject: [PATCH 0869/1709] New translations fair-use-policy.mdx (Turkish) --- .../pages/tr/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/tr/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/tr/subgraphs/fair-use-policy.mdx b/website/src/pages/tr/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..57acd58dfa13 --- /dev/null +++ b/website/src/pages/tr/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Genel Bakış + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 12bd9aeede2649a2a0ab4f9f6ee17418d37836e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:35 -0400 Subject: [PATCH 0870/1709] New translations upgrade-indexer.mdx (Turkish) --- .../pages/tr/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/tr/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/tr/subgraphs/upgrade-indexer.mdx b/website/src/pages/tr/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..818b7773e7fa --- /dev/null +++ b/website/src/pages/tr/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Genel Bakış + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Sonuç + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 6d318505f1d3ce3472489f6271f47607d0601b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:37 -0400 Subject: [PATCH 0871/1709] New translations fair-use-policy.mdx (Ukrainian) --- .../pages/uk/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/uk/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/uk/subgraphs/fair-use-policy.mdx b/website/src/pages/uk/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/uk/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 1296ca30da2a9a0e7f480cc1d6a1d368192d99b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:39 -0400 Subject: [PATCH 0872/1709] New translations upgrade-indexer.mdx (Ukrainian) --- .../pages/uk/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/uk/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/uk/subgraphs/upgrade-indexer.mdx b/website/src/pages/uk/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..c314c8a3a1f3 --- /dev/null +++ b/website/src/pages/uk/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 2d56c86d6222a5f96260ca7465cc8d887e392e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:40 -0400 Subject: [PATCH 0873/1709] New translations fair-use-policy.mdx (Chinese Simplified) --- .../pages/zh/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/zh/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/zh/subgraphs/fair-use-policy.mdx b/website/src/pages/zh/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8d029a6ae3c6 --- /dev/null +++ b/website/src/pages/zh/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## 概述 + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 284d2906da11f157a4803a33a0272d3fa450e109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:42 -0400 Subject: [PATCH 0874/1709] New translations upgrade-indexer.mdx (Chinese Simplified) --- .../pages/zh/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/zh/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/zh/subgraphs/upgrade-indexer.mdx b/website/src/pages/zh/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..31d8a85617d2 --- /dev/null +++ b/website/src/pages/zh/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## 概述 + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### 结论 + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From e1b07219a8f2677b062209f8fbd0595a9132e35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:44 -0400 Subject: [PATCH 0875/1709] New translations fair-use-policy.mdx (Urdu (Pakistan)) --- .../pages/ur/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/ur/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/ur/subgraphs/fair-use-policy.mdx b/website/src/pages/ur/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..b49e577d0960 --- /dev/null +++ b/website/src/pages/ur/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## جائزہ + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From dd8ecf6f2bc430a5bc656f99519e213cba6055e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:45 -0400 Subject: [PATCH 0876/1709] New translations upgrade-indexer.mdx (Urdu (Pakistan)) --- .../pages/ur/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/ur/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/ur/subgraphs/upgrade-indexer.mdx b/website/src/pages/ur/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..d8b83f3eab5a --- /dev/null +++ b/website/src/pages/ur/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## جائزہ + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 92c4287ccff7623ea209adb66ab85af49204b317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:46 -0400 Subject: [PATCH 0877/1709] New translations fair-use-policy.mdx (Vietnamese) --- .../pages/vi/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/vi/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/vi/subgraphs/fair-use-policy.mdx b/website/src/pages/vi/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..e6d9472e5bde --- /dev/null +++ b/website/src/pages/vi/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Tổng quan + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 279f763b7a417e693aaa6dcbb91e386e9bc0b17f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:48 -0400 Subject: [PATCH 0878/1709] New translations upgrade-indexer.mdx (Vietnamese) --- .../pages/vi/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/vi/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/vi/subgraphs/upgrade-indexer.mdx b/website/src/pages/vi/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..4da69740c800 --- /dev/null +++ b/website/src/pages/vi/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Tổng quan + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 165f799e26ab927af89429a84367cc90e8c6df01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:50 -0400 Subject: [PATCH 0879/1709] New translations fair-use-policy.mdx (Marathi) --- .../pages/mr/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/mr/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/mr/subgraphs/fair-use-policy.mdx b/website/src/pages/mr/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..0d69d65abd69 --- /dev/null +++ b/website/src/pages/mr/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## सविश्लेषण + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From f539f8c41a07248a5082e272bfcb6c419f8b1f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:51 -0400 Subject: [PATCH 0880/1709] New translations upgrade-indexer.mdx (Marathi) --- .../pages/mr/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/mr/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/mr/subgraphs/upgrade-indexer.mdx b/website/src/pages/mr/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..27f33479d07f --- /dev/null +++ b/website/src/pages/mr/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## सविश्लेषण + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### Conclusion + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 5c88224279b75cd0e225d23c0171bb940537218d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:53 -0400 Subject: [PATCH 0881/1709] New translations fair-use-policy.mdx (Hindi) --- .../pages/hi/subgraphs/fair-use-policy.mdx | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 website/src/pages/hi/subgraphs/fair-use-policy.mdx diff --git a/website/src/pages/hi/subgraphs/fair-use-policy.mdx b/website/src/pages/hi/subgraphs/fair-use-policy.mdx new file mode 100644 index 000000000000..8a27a7ea2887 --- /dev/null +++ b/website/src/pages/hi/subgraphs/fair-use-policy.mdx @@ -0,0 +1,51 @@ +--- +title: Fair Use Policy +--- + +> Effective Date: May 15, 2025 + +## Overview + +This outlines storage limits for Subgraphs that rely solely on [Edge & Node's Upgrade Indexer](/subgraphs/upgrade-indexer/). This policy is designed to ensure fair and optimized use of queries across the community. + +To maintain performance and reliability across its infrastructure, Edge & Node is updating its Upgrade Indexer Subgraph storage policy. Free usage tiers remain available, but users who exceed specified limits will need to upgrade to a paid plan. Storage allocations and thresholds vary by feature. + +### 1. Scope + +This policy applies to all individual users, teams, chains, and dapps using Edge & Node's Upgrade Indexer in Subgraph Studio for storage and queries. + +### 2. Fair Use Storage Limits + +**Free Storage: Up to 10 GB** + +Beyond that, pricing is variable and adjusts based on usage patterns, network conditions, infrastructure requirements, and specific use cases. + +Reach out to Edge & Node at [info@edgeandnode.com](mailto:info@edgeandnode.com) to discuss options that meet your technical needs. + +You can monitor your usage via [Subgraph Studio](https://thegraph.com/studio/). + +### 3. Fair Use Limits + +To preserve the stability of Edge & Node's Subgraph Studio and preserve the reliability of The Graph Network, the Edge & Node Support Team will monitor storage usage and take corresponding action with Subgraphs that have: + +- Abnormally high or sustained bandwidth or storage usage beyond posted limits +- Circumvention of storage thresholds (e.g., use of multiple free-tier accounts) + +The Edge & Node Support Team reserves the right to revise storage limits or impose temporary constraints for operational integrity. + +If you exceed your included storage: + +- Try [pruning Subgraph data](/subgraphs/best-practices/pruning/) to remove unused entities and help stay within storage limits +- [Add signal to the Subgraph](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to encourage other Indexers on the network to serve it +- You will receive multiple notifications and email alerts +- A grace period of 14 days will be provided to upgrade or reduce storage + +Edge & Node's team is committed to helping users avoid unnecessary interruptions and will continue to support all web3 builders. + +### 4. Subgraph Data Retention + +Subgraphs inactive for over 14 days or Subgraphs that exceed free-tier storage limits will be subject to automatic data archival or deletion. Edge & Node's team will notify you before any such actions are taken. + +### 5. Support + +If you believe your usage is incorrectly flagged or have unique use cases (e.g. approved special request pending new Subgraph upgrade plan), reach out the Edge & Node team at [info@edgeandnode.com](mailto:info@edgeandnode.com). From 8d67fe2487e20c9e24bc1808f08ec8703ae7ea04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 15 May 2025 11:31:54 -0400 Subject: [PATCH 0882/1709] New translations upgrade-indexer.mdx (Hindi) --- .../pages/hi/subgraphs/upgrade-indexer.mdx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 website/src/pages/hi/subgraphs/upgrade-indexer.mdx diff --git a/website/src/pages/hi/subgraphs/upgrade-indexer.mdx b/website/src/pages/hi/subgraphs/upgrade-indexer.mdx new file mode 100644 index 000000000000..f2a65ee6b0c1 --- /dev/null +++ b/website/src/pages/hi/subgraphs/upgrade-indexer.mdx @@ -0,0 +1,25 @@ +--- +title: Edge & Node Upgrade Indexer +sidebarTitle: Upgrade Indexer +--- + +## Overview + +The Upgrade Indexer is a specialized Indexer operated by Edge & Node. It supports newly integrated chains within The Graph ecosystem and ensures new Subgraphs are immediately available for querying, eliminating potential downtime. + +Originally designed as a transitional support, its primary purpose was to facilitate the migration of Subgraphs from the hosted service to the decentralized network. Currently, it supports newly deployed Subgraphs before the full Chain Integration Process (CIP) Indexing rewards are activated. + +### What it does + +- Provides immediate query support for all newly deployed subgraphs. +- Functions as the sole supporting Indexer for each chain until indexing rewards are activated. + +### What it does **not** do + +- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. +- Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. + +### निष्कर्ष + +The Edge & Node Upgrade Indexer is foundational in supporting chain integrations and mitigating data latency risks. It plays a critical role in scaling The Graph's decentralized infrastructure by ensuring immediate query support and fostering community-driven indexing. From 4dd37ca81b092e926f4c2fa7c6ccfb5c46b0de54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:00 -0400 Subject: [PATCH 0883/1709] New translations supported-networks.mdx (Romanian) --- website/src/pages/ro/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/supported-networks.mdx b/website/src/pages/ro/supported-networks.mdx index bcd50c91681b..3df6aabc5e64 100644 --- a/website/src/pages/ro/supported-networks.mdx +++ b/website/src/pages/ro/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From f4b9ff946a97f7986bcbbeccd210480f7a7f3ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:02 -0400 Subject: [PATCH 0884/1709] New translations supported-networks.mdx (French) --- website/src/pages/fr/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/supported-networks.mdx b/website/src/pages/fr/supported-networks.mdx index 5ce0074ba40c..d96365004739 100644 --- a/website/src/pages/fr/supported-networks.mdx +++ b/website/src/pages/fr/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From d69bdaab3853cdb1932a5cf522bdee04740a8e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:03 -0400 Subject: [PATCH 0885/1709] New translations supported-networks.mdx (Spanish) --- website/src/pages/es/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/supported-networks.mdx b/website/src/pages/es/supported-networks.mdx index 3b3d7eb14227..5baae1d7e76c 100644 --- a/website/src/pages/es/supported-networks.mdx +++ b/website/src/pages/es/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 94d71099ce99f368230ff969875c44b7f59920b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:04 -0400 Subject: [PATCH 0886/1709] New translations supported-networks.mdx (Arabic) --- website/src/pages/ar/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/supported-networks.mdx b/website/src/pages/ar/supported-networks.mdx index ac8ea6df8253..bc974d709753 100644 --- a/website/src/pages/ar/supported-networks.mdx +++ b/website/src/pages/ar/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From eb38d38e0aaac6261da2af8e9c7da0a8887eac4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:05 -0400 Subject: [PATCH 0887/1709] New translations supported-networks.mdx (Czech) --- website/src/pages/cs/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/supported-networks.mdx b/website/src/pages/cs/supported-networks.mdx index 3c04b4dbbafb..fefd918d2b78 100644 --- a/website/src/pages/cs/supported-networks.mdx +++ b/website/src/pages/cs/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 890acaeb0fc4e9cd52c18a1792bf50d49954844d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:07 -0400 Subject: [PATCH 0888/1709] New translations supported-networks.mdx (German) --- website/src/pages/de/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/supported-networks.mdx b/website/src/pages/de/supported-networks.mdx index 835ce6df9b0d..698073a1d456 100644 --- a/website/src/pages/de/supported-networks.mdx +++ b/website/src/pages/de/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From f2644244ddf15a99f9059954b0216faf69e5f5d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:08 -0400 Subject: [PATCH 0889/1709] New translations supported-networks.mdx (Italian) --- website/src/pages/it/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/supported-networks.mdx b/website/src/pages/it/supported-networks.mdx index 8860d1f382dd..9592cfabc0ad 100644 --- a/website/src/pages/it/supported-networks.mdx +++ b/website/src/pages/it/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 8c8749a92f25c3138ad979015b7b26e0386c14ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:09 -0400 Subject: [PATCH 0890/1709] New translations supported-networks.mdx (Japanese) --- website/src/pages/ja/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/supported-networks.mdx b/website/src/pages/ja/supported-networks.mdx index 90213669311f..c9dc22ed741b 100644 --- a/website/src/pages/ja/supported-networks.mdx +++ b/website/src/pages/ja/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 014a4f127081ebe242a307741c5ceefd6f07ac5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:11 -0400 Subject: [PATCH 0891/1709] New translations supported-networks.mdx (Korean) --- website/src/pages/ko/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/supported-networks.mdx b/website/src/pages/ko/supported-networks.mdx index 8860d1f382dd..9592cfabc0ad 100644 --- a/website/src/pages/ko/supported-networks.mdx +++ b/website/src/pages/ko/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From feb3b05925ca91c323435992f08b8f03ab4444bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:12 -0400 Subject: [PATCH 0892/1709] New translations supported-networks.mdx (Dutch) --- website/src/pages/nl/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/supported-networks.mdx b/website/src/pages/nl/supported-networks.mdx index bf73c201439e..166688ade0fc 100644 --- a/website/src/pages/nl/supported-networks.mdx +++ b/website/src/pages/nl/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From fda6ff6069fb4276cb7eaa02fb0bcb5dc356ec5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:13 -0400 Subject: [PATCH 0893/1709] New translations supported-networks.mdx (Polish) --- website/src/pages/pl/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/supported-networks.mdx b/website/src/pages/pl/supported-networks.mdx index aef5668b103a..c6510519abcb 100644 --- a/website/src/pages/pl/supported-networks.mdx +++ b/website/src/pages/pl/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 4e0f42ac3fe039b9dcc7f486a0dc84e2cade3e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:15 -0400 Subject: [PATCH 0894/1709] New translations supported-networks.mdx (Portuguese) --- website/src/pages/pt/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/supported-networks.mdx b/website/src/pages/pt/supported-networks.mdx index 248c3aebdae1..62d22c70610b 100644 --- a/website/src/pages/pt/supported-networks.mdx +++ b/website/src/pages/pt/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 39976dfa764fa2fe6e5193a54eb5511badac098b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:16 -0400 Subject: [PATCH 0895/1709] New translations supported-networks.mdx (Russian) --- website/src/pages/ru/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/supported-networks.mdx b/website/src/pages/ru/supported-networks.mdx index bef59cd934b9..dd2d58d018bb 100644 --- a/website/src/pages/ru/supported-networks.mdx +++ b/website/src/pages/ru/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 96d8be916c445976940b51fd7cfe32b95d293a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:17 -0400 Subject: [PATCH 0896/1709] New translations supported-networks.mdx (Swedish) --- website/src/pages/sv/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/supported-networks.mdx b/website/src/pages/sv/supported-networks.mdx index d91330162c93..a419052023b8 100644 --- a/website/src/pages/sv/supported-networks.mdx +++ b/website/src/pages/sv/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From b20193be58cbfb2dd58b41c93487ea010005e36f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:18 -0400 Subject: [PATCH 0897/1709] New translations supported-networks.mdx (Turkish) --- website/src/pages/tr/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/supported-networks.mdx b/website/src/pages/tr/supported-networks.mdx index faa9ea814c32..708361a79cbf 100644 --- a/website/src/pages/tr/supported-networks.mdx +++ b/website/src/pages/tr/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 2cc85c909bec790a5635fd61817cbf15816e808d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:20 -0400 Subject: [PATCH 0898/1709] New translations supported-networks.mdx (Ukrainian) --- website/src/pages/uk/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/supported-networks.mdx b/website/src/pages/uk/supported-networks.mdx index 5f03298564b4..0d9cafc44d77 100644 --- a/website/src/pages/uk/supported-networks.mdx +++ b/website/src/pages/uk/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From fd1360885e060b153afc8f01e6075182b9731488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:21 -0400 Subject: [PATCH 0899/1709] New translations supported-networks.mdx (Chinese Simplified) --- website/src/pages/zh/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/supported-networks.mdx b/website/src/pages/zh/supported-networks.mdx index 1bf28caeabfd..c297c31d8209 100644 --- a/website/src/pages/zh/supported-networks.mdx +++ b/website/src/pages/zh/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 38de8745597dc3b8dda34585b7b00d9723f58fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:23 -0400 Subject: [PATCH 0900/1709] New translations supported-networks.mdx (Urdu (Pakistan)) --- website/src/pages/ur/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/supported-networks.mdx b/website/src/pages/ur/supported-networks.mdx index 15117baa5291..9776e29beccf 100644 --- a/website/src/pages/ur/supported-networks.mdx +++ b/website/src/pages/ur/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 04b9fee92d49a77ffcedb8898aa7df976d0fb226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:24 -0400 Subject: [PATCH 0901/1709] New translations supported-networks.mdx (Vietnamese) --- website/src/pages/vi/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/supported-networks.mdx b/website/src/pages/vi/supported-networks.mdx index aadae2b787a5..f6c4a43e6ca4 100644 --- a/website/src/pages/vi/supported-networks.mdx +++ b/website/src/pages/vi/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From c7ee47f0eb4e55ef2b49ff3c1bb0a878281a1cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:25 -0400 Subject: [PATCH 0902/1709] New translations supported-networks.mdx (Marathi) --- website/src/pages/mr/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/supported-networks.mdx b/website/src/pages/mr/supported-networks.mdx index 8860d1f382dd..9592cfabc0ad 100644 --- a/website/src/pages/mr/supported-networks.mdx +++ b/website/src/pages/mr/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From 2224da2dd5c27fb6cf114b15c58c493b52ad165b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 08:09:27 -0400 Subject: [PATCH 0903/1709] New translations supported-networks.mdx (Hindi) --- website/src/pages/hi/supported-networks.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/supported-networks.mdx b/website/src/pages/hi/supported-networks.mdx index 8a1e715d3525..5e80de66ca27 100644 --- a/website/src/pages/hi/supported-networks.mdx +++ b/website/src/pages/hi/supported-networks.mdx @@ -10,7 +10,7 @@ import { useI18n } from '@/i18n' export const getStaticProps = getSupportedNetworksStaticProps - + {useI18n().t('index.supportedNetworks.title')} From a01de2aaf8737b0a570f60e9c4894a5dcb236bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:01 -0400 Subject: [PATCH 0904/1709] New translations upgrade-indexer.mdx (Romanian) --- website/src/pages/ro/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/subgraphs/upgrade-indexer.mdx b/website/src/pages/ro/subgraphs/upgrade-indexer.mdx index c314c8a3a1f3..8d6c874bec12 100644 --- a/website/src/pages/ro/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ro/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 428498d389ed9f5595df09c4d805c2b30b205186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:03 -0400 Subject: [PATCH 0905/1709] New translations upgrade-indexer.mdx (French) --- website/src/pages/fr/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/subgraphs/upgrade-indexer.mdx b/website/src/pages/fr/subgraphs/upgrade-indexer.mdx index 6464d5524171..64f2972e0c5e 100644 --- a/website/src/pages/fr/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/fr/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 582b9c320112ecc15243ba21726c47f8369b2bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:04 -0400 Subject: [PATCH 0906/1709] New translations upgrade-indexer.mdx (Spanish) --- website/src/pages/es/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/subgraphs/upgrade-indexer.mdx b/website/src/pages/es/subgraphs/upgrade-indexer.mdx index 781490f893f2..756f4b15f029 100644 --- a/website/src/pages/es/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/es/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From a7dd8b64a7aedbea60b58cd5e0dc2f84597621ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:05 -0400 Subject: [PATCH 0907/1709] New translations upgrade-indexer.mdx (Arabic) --- website/src/pages/ar/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/subgraphs/upgrade-indexer.mdx b/website/src/pages/ar/subgraphs/upgrade-indexer.mdx index 019ffbae4417..dce3a784d917 100644 --- a/website/src/pages/ar/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ar/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From acb613b0f878472aae3550efdbe3ae1201bfdf6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:06 -0400 Subject: [PATCH 0908/1709] New translations upgrade-indexer.mdx (Czech) --- website/src/pages/cs/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/subgraphs/upgrade-indexer.mdx b/website/src/pages/cs/subgraphs/upgrade-indexer.mdx index 97672a6b28d4..4994154ea4a1 100644 --- a/website/src/pages/cs/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/cs/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From ddd27eafbc7f4d54cc170b54ce1fe76dfe2893b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:07 -0400 Subject: [PATCH 0909/1709] New translations upgrade-indexer.mdx (German) --- website/src/pages/de/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/subgraphs/upgrade-indexer.mdx b/website/src/pages/de/subgraphs/upgrade-indexer.mdx index d658918c5570..8675a7e47fb6 100644 --- a/website/src/pages/de/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/de/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From c0945d3c6ff9bbb500916cd736951b9edf1658b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:08 -0400 Subject: [PATCH 0910/1709] New translations upgrade-indexer.mdx (Italian) --- website/src/pages/it/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/subgraphs/upgrade-indexer.mdx b/website/src/pages/it/subgraphs/upgrade-indexer.mdx index 0533831f21c8..8fb72e077a03 100644 --- a/website/src/pages/it/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/it/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 8aa155899cfb3517495bbf5610295cc1599ccece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:09 -0400 Subject: [PATCH 0911/1709] New translations upgrade-indexer.mdx (Japanese) --- website/src/pages/ja/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/subgraphs/upgrade-indexer.mdx b/website/src/pages/ja/subgraphs/upgrade-indexer.mdx index 9607046ef59d..c0ac0d0e0666 100644 --- a/website/src/pages/ja/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ja/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 1a2ed140acc57664ba28f728b1bc569c4d45715c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:10 -0400 Subject: [PATCH 0912/1709] New translations upgrade-indexer.mdx (Korean) --- website/src/pages/ko/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/subgraphs/upgrade-indexer.mdx b/website/src/pages/ko/subgraphs/upgrade-indexer.mdx index c314c8a3a1f3..8d6c874bec12 100644 --- a/website/src/pages/ko/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ko/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From b556773a3a5745fb55e8421b968f777e14554c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:12 -0400 Subject: [PATCH 0913/1709] New translations upgrade-indexer.mdx (Dutch) --- website/src/pages/nl/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/subgraphs/upgrade-indexer.mdx b/website/src/pages/nl/subgraphs/upgrade-indexer.mdx index c314c8a3a1f3..8d6c874bec12 100644 --- a/website/src/pages/nl/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/nl/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 93cf4e71f620bf844e3c59a981b609ccd1a0fa88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:13 -0400 Subject: [PATCH 0914/1709] New translations upgrade-indexer.mdx (Polish) --- website/src/pages/pl/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/subgraphs/upgrade-indexer.mdx b/website/src/pages/pl/subgraphs/upgrade-indexer.mdx index c314c8a3a1f3..8d6c874bec12 100644 --- a/website/src/pages/pl/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/pl/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 6182e909d30d70910e4f05729d7e4413f2e6e039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:14 -0400 Subject: [PATCH 0915/1709] New translations upgrade-indexer.mdx (Portuguese) --- website/src/pages/pt/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/subgraphs/upgrade-indexer.mdx b/website/src/pages/pt/subgraphs/upgrade-indexer.mdx index dadb9d80e79c..3281c7d8e7f4 100644 --- a/website/src/pages/pt/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/pt/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 943811075f038707098c7960e3ecadb9b70bff42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:15 -0400 Subject: [PATCH 0916/1709] New translations upgrade-indexer.mdx (Russian) --- website/src/pages/ru/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/subgraphs/upgrade-indexer.mdx b/website/src/pages/ru/subgraphs/upgrade-indexer.mdx index 70471433c27a..15bda8eb8860 100644 --- a/website/src/pages/ru/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ru/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 80ff201f14e53576695100e042aa76d7861192ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:16 -0400 Subject: [PATCH 0917/1709] New translations upgrade-indexer.mdx (Swedish) --- website/src/pages/sv/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/subgraphs/upgrade-indexer.mdx b/website/src/pages/sv/subgraphs/upgrade-indexer.mdx index e68477767a97..e5b347179a07 100644 --- a/website/src/pages/sv/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/sv/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From b0b8221e94c70dc4f85fcbd8aae8ea5c66f066b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:17 -0400 Subject: [PATCH 0918/1709] New translations upgrade-indexer.mdx (Turkish) --- website/src/pages/tr/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/subgraphs/upgrade-indexer.mdx b/website/src/pages/tr/subgraphs/upgrade-indexer.mdx index 818b7773e7fa..6592ea266f83 100644 --- a/website/src/pages/tr/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/tr/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 20345eff7b984871bd1ae6f3c172a7af108586d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:18 -0400 Subject: [PATCH 0919/1709] New translations upgrade-indexer.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/subgraphs/upgrade-indexer.mdx b/website/src/pages/uk/subgraphs/upgrade-indexer.mdx index c314c8a3a1f3..8d6c874bec12 100644 --- a/website/src/pages/uk/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/uk/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 8f38fea136e2382815ae263decf5a32eec9065cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:20 -0400 Subject: [PATCH 0920/1709] New translations upgrade-indexer.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/subgraphs/upgrade-indexer.mdx b/website/src/pages/zh/subgraphs/upgrade-indexer.mdx index 31d8a85617d2..1c9499cfef10 100644 --- a/website/src/pages/zh/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/zh/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From a9868482abc7639f8840d40af685e1cc68c7e1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:21 -0400 Subject: [PATCH 0921/1709] New translations upgrade-indexer.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/subgraphs/upgrade-indexer.mdx b/website/src/pages/ur/subgraphs/upgrade-indexer.mdx index d8b83f3eab5a..5ff2a13e256e 100644 --- a/website/src/pages/ur/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/ur/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 83287de2d5e94b99b6f82d8c447ef58b15cd486f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:22 -0400 Subject: [PATCH 0922/1709] New translations upgrade-indexer.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/subgraphs/upgrade-indexer.mdx b/website/src/pages/vi/subgraphs/upgrade-indexer.mdx index 4da69740c800..eb3116cb517f 100644 --- a/website/src/pages/vi/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/vi/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From cc82dc4643b6c0d4a2323b111f372bbe2815d19e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:23 -0400 Subject: [PATCH 0923/1709] New translations upgrade-indexer.mdx (Marathi) --- website/src/pages/mr/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/subgraphs/upgrade-indexer.mdx b/website/src/pages/mr/subgraphs/upgrade-indexer.mdx index 27f33479d07f..a4fdc7af31a1 100644 --- a/website/src/pages/mr/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/mr/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 251332f4a2f6ede450ea544f14347202199f92b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 16 May 2025 12:27:24 -0400 Subject: [PATCH 0924/1709] New translations upgrade-indexer.mdx (Hindi) --- website/src/pages/hi/subgraphs/upgrade-indexer.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/subgraphs/upgrade-indexer.mdx b/website/src/pages/hi/subgraphs/upgrade-indexer.mdx index f2a65ee6b0c1..af859932f444 100644 --- a/website/src/pages/hi/subgraphs/upgrade-indexer.mdx +++ b/website/src/pages/hi/subgraphs/upgrade-indexer.mdx @@ -11,12 +11,12 @@ Originally designed as a transitional support, its primary purpose was to facili ### What it does -- Provides immediate query support for all newly deployed subgraphs. +- Provides immediate query support for all newly deployed Subgraphs. - Functions as the sole supporting Indexer for each chain until indexing rewards are activated. ### What it does **not** do -- Does not permanently index subgraphs. Subgraph owners should curate subgraphs to use independent Indexers long term. +- Does not permanently index Subgraphs. Subgraph owners should curate Subgraphs to use independent Indexers long term. - Does not compete for rewards. The Upgrade Indexer's participation on the Graph Network does not dilute rewards for other Indexers. - Doesn't support Time Travel Queries (TTQ). All Subgraphs on the Upgrade Indexer are auto-pruned. If TTQs are needed on a Subgraph, [curation signal can be added](/subgraphs/developing/publishing/publishing-a-subgraph/#adding-signal-to-your-subgraph) to attract Indexers that will support this feature. From 111a367b42c2142ad4598e078014ebfacc177942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:33 -0400 Subject: [PATCH 0925/1709] New translations subgraph-id-vs-deployment-id.mdx (Romanian) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ro/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/ro/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ro/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From e76ab31cfde10f71f4992adf5f700555f23b351d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:34 -0400 Subject: [PATCH 0926/1709] New translations subgraph-id-vs-deployment-id.mdx (French) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/fr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index acd40aface24..b774cffa4104 100644 --- a/website/src/pages/fr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/fr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Identifiant du Subgraph VS. Identifiant de déploiement --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Un subgraph est identifié par un ID de subgraph, et chaque version du subgraph est identifiée par un ID de déploiement. Lors de l'interrogation d'un subgraph, l'un ou l'autre ID peut être utilisé, bien qu'il soit généralement suggéré d'utiliser l'ID de déploiement en raison de sa capacité à spécifier une version spécifique d'un subgraph. -Voici les principales différences entre les deux ID : ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Identifiant de déploiement @@ -18,6 +22,12 @@ Exemple d'endpoint utilisant l'identifiant de déploiement: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Identifiant du Subgraph L'ID du subgraph est un ID unique pour un subgraph. Il reste constant dans toutes les versions d'un subgraph. Il est recommandé d'utiliser l'ID du subgraph pour demander la dernière version d'un subgraph, bien qu'il y ait quelques mises en garde. @@ -25,3 +35,20 @@ L'ID du subgraph est un ID unique pour un subgraph. Il reste constant dans toute Sachez que l'interrogation à l'aide de l'ID du Subgraph peut entraîner la réponse à des requêtes par une version plus ancienne du Subgraph, la nouvelle version ayant besoin d'un certain temps pour se synchroniser. De plus, les nouvelles versions peuvent introduire des changements de schéma radicaux. Exemple d'endpoint utilisant l'ID du subgraph : `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 61393c738f8118fa61bd221cb5f4607d3331a7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:35 -0400 Subject: [PATCH 0927/1709] New translations subgraph-id-vs-deployment-id.mdx (Spanish) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/es/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/es/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/es/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 4e912ba785578a69ade60db3129543c349d6b6cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:37 -0400 Subject: [PATCH 0928/1709] New translations subgraph-id-vs-deployment-id.mdx (Arabic) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ar/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/ar/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ar/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 105c679746245082c7061dc6be0ca8f59b33ba0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:38 -0400 Subject: [PATCH 0929/1709] New translations subgraph-id-vs-deployment-id.mdx (Czech) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/cs/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 7792cb56d855..cb9a6aa56d08 100644 --- a/website/src/pages/cs/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/cs/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: ID podgrafu vs. ID nasazení --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## ID nasazení @@ -18,6 +22,12 @@ Příklad koncového bodu, který používá ID nasazení: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## ID podgrafu The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 0c3bf36b49386a7815f3b2e54b6156d0e505e069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:39 -0400 Subject: [PATCH 0930/1709] New translations subgraph-id-vs-deployment-id.mdx (German) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/de/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index b35d7d952215..ad59c07ce220 100644 --- a/website/src/pages/de/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/de/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraphen-ID vs. Einsatz-ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Ein Subgraph wird durch eine Subgraph-ID identifiziert, und jede Version des Subgraphen wird durch eine Deployment-ID identifiziert. Bei der Abfrage eines Subgraphen kann jede der beiden IDs verwendet werden, obwohl im Allgemeinen empfohlen wird, die Deployment ID zu verwenden, da sie eine bestimmte Version eines Subgraphen angeben kann. -Hier sind einige wichtige Unterschiede zwischen den beiden IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Einsatz-ID @@ -18,6 +22,12 @@ Beispiel für einen Endpunkt, der die Bereitstellungs-ID verwendet: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID Die Subgraph-ID ist ein eindeutiger Bezeichner für einen Subgraphen. Sie bleibt über alle Versionen eines Subgraphen hinweg konstant. Es wird empfohlen, die Subgraph-ID zu verwenden, um die neueste Version eines Subgraphen abzufragen, obwohl es einige Einschränkungen gibt. @@ -25,3 +35,20 @@ Die Subgraph-ID ist ein eindeutiger Bezeichner für einen Subgraphen. Sie bleibt Beachten Sie, dass Abfragen unter Verwendung der Subgraph-ID dazu führen können, dass Abfragen von einer älteren Version des Subgraphen beantwortet werden, da die neue Version Zeit zum Synchronisieren benötigt. Außerdem könnten neue Versionen Änderungen am Schema mit sich bringen. Beispiel-Endpunkt, der die Subgraph-ID verwendet: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 32bc72ad9ca32b55601f158c727d1ce73fc3ed21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:40 -0400 Subject: [PATCH 0931/1709] New translations subgraph-id-vs-deployment-id.mdx (Italian) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/it/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/it/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/it/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 96ea9ebe4576e5b7412f5afbcbf05eeb8ed1ae25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:41 -0400 Subject: [PATCH 0932/1709] New translations subgraph-id-vs-deployment-id.mdx (Japanese) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ja/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 4bf98ccc0c6f..ff7baebae920 100644 --- a/website/src/pages/ja/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ja/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Deployment ID を使用するエンドポイントの例: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From bff4a49a3356c8612d7a59bac8be61278098b2a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:42 -0400 Subject: [PATCH 0933/1709] New translations subgraph-id-vs-deployment-id.mdx (Korean) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ko/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/ko/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ko/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 55971508e11a972fc31ad2769352b7230fa1b584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:44 -0400 Subject: [PATCH 0934/1709] New translations subgraph-id-vs-deployment-id.mdx (Dutch) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/nl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/nl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/nl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From f3e10b390637cc8597307de66d55152dc4139e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:45 -0400 Subject: [PATCH 0935/1709] New translations subgraph-id-vs-deployment-id.mdx (Polish) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/pl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/pl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/pl/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From ff910c29670f16ad849d35fdea0ce7534149e974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:46 -0400 Subject: [PATCH 0936/1709] New translations subgraph-id-vs-deployment-id.mdx (Portuguese) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/pt/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index a9cef21ce27f..de75b3023c7c 100644 --- a/website/src/pages/pt/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/pt/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: ID de Subgraph contra ID de Lançamento --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Um subgraph é identificado por uma ID de Subgraph, e cada versão do subgraph é identificada por uma ID de Implantação. Ao consultar um subgraph, qualquer das IDs pode ser usada, mas recomendamos usar a ID de Implantação (Deployment ID) pela sua habilidade de especificar uma versão específica de um subgraph. -Aqui estão algumas diferenças importantes entre as duas IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## ID de Lançamento @@ -18,6 +22,12 @@ Exemplo de endpoint que usa ID de Lançamento: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## ID de Subgraph A ID de Subgraph é uma identificadora única para um subgraph. Ela permanece constante entre todas as versões de um subgraph. É recomendado usar a ID do Subgraph para consultar a versão mais recente de um subgraph, mas há obstáculos. @@ -25,3 +35,20 @@ A ID de Subgraph é uma identificadora única para um subgraph. Ela permanece co Saiba que realizar queries com a ID do Subgraph pode fazer com que queries sejam respondidas por uma versão mais antiga do subgraph, porque a nova versão precisaria de mais tempo para sincronizar. Além disto, novas versões podem introduzir mudanças que podem quebrar o schema. Exemplo de endpoint que usa a ID de Subgraph: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 327a3da84d31c7a8643126ce470d813cb721bd8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:47 -0400 Subject: [PATCH 0937/1709] New translations subgraph-id-vs-deployment-id.mdx (Russian) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ru/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index b697d9cfd5e6..7d33c0a561ea 100644 --- a/website/src/pages/ru/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ru/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Идентификатор субграфа vs Идентификатор развертывания --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Субграф идентифицируется с помощью идентификатора субграфа, а каждая его версия — с помощью идентификатора развертывания. При выполнении запроса к субграфу можно использовать любой из идентификаторов, но обычно рекомендуется использовать идентификатор развертывания, так как он позволяет указать конкретную версию субграфа. -Вот некоторые ключевые различия между двумя ID: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Идентификатор развертывания @@ -18,6 +22,12 @@ title: Идентификатор субграфа vs Идентификатор `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Идентификатор субграфа Идентификатор субграфа — это уникальный идентификатор для субграфа. Он остаётся постоянным для всех версий субграфа. Рекомендуется использовать идентификатор субграфа для запроса последней версии субграфа, хотя существуют некоторые особенности. @@ -25,3 +35,20 @@ title: Идентификатор субграфа vs Идентификатор Имейте в виду, что запросы с использованием идентификатора субграфа могут привести к тому, что на запрос будет отвечать старая версия субграфа, так как новой версии может потребоваться время для синхронизации. Также новые версии могут вводить изменения в схеме, которые являются несовместимыми с предыдущими версиями. Пример конечной точки, использующей идентификатор субграфа: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From c2454b6a2715bb8022f238e6f4f9a0a01b68490f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:49 -0400 Subject: [PATCH 0938/1709] New translations subgraph-id-vs-deployment-id.mdx (Swedish) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/sv/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/sv/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/sv/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 27aff4cc2418b7a37329ec9bbd071bac72947a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:50 -0400 Subject: [PATCH 0939/1709] New translations subgraph-id-vs-deployment-id.mdx (Turkish) --- .../querying/subgraph-id-vs-deployment-id.mdx | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/tr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 60146e950eae..066575f5716a 100644 --- a/website/src/pages/tr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/tr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,15 +2,20 @@ title: Subgraph Kimliği ve Dağıtım Kimliği Karşılaştırılması --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Her bir Subgraph, bir Subgraph Kimliği (Subgraph ID) ile tanımlanır ve bu Subgraph'in her bir sürümü, bir Dağıtım Kimliği (Deployment ID) ile tanımlanır. Bir Subgraph sorgulanırken her iki kimlik de kullanılabilir, ancak genellikle spesifik bir Subgraph sürümünü tam olarak tanımlayabildiği için Dağıtım Kimliği'nin kullanılması önerilir. -İki kimlik arasındaki bazı temel farklar şunlardır: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Dağıtım Kimliği -Dağıtım Kimliği (Deployment ID), derlenmiş manifesto dosyasının IPFS hash’idir ve bilgisayardaki göreli URL’ler yerine IPFS üzerindeki diğer dosyalara referans verir. Örneğin, derlenmiş manifesto dosyasına şu bağlantı üzerinden erişilebilir: `https://api.thegraph.com/ipfs/api/v0/cat?arg=QmQKXcNQQRdUvNRMGJiE2idoTu9fo5F5MRtKztH4WyKxED`. Dağıtım Kimliği’ni değiştirmek için, manifesto dosyasında güncelleme yapmak yeterlidir; örneğin, [Subgraph manifesto dokümantasyonu](https://github.com/graphprotocol/graph-node/blob/master/docs/subgraph-manifest.md#13-top-level-api)nda açıklandığı gibi "description" alanını değiştirerek bu sağlanabilir. +Dağıtım Kimliği (Deployment ID), derlenmiş manifesto dosyasının IPFS hash’idir ve bilgisayardaki göreli URL’ler yerine IPFS üzerindeki diğer dosyalara referans verir. Örneğin, derlenmiş manifesto dosyasına şu bağlantı üzerinden erişilebilir: +`https://api.thegraph.com/ipfs/api/v0/cat?arg=QmQKXcNQQRdUvNRMGJiE2idoTu9fo5F5MRtKztH4WyKxED`. Dağıtım Kimliği’ni değiştirmek için, manifesto dosyasında güncelleme yapmak yeterlidir; örneğin, [Subgraph manifesto dokümantasyonu](https://github.com/graphprotocol/graph-node/blob/master/docs/subgraph-manifest.md#13-top-level-api)nda açıklandığı gibi "description" alanını değiştirerek bu sağlanabilir. Bir Subgraph'in Dağıtım Kimliği kullanılarak sorgu yapıldığında, sorgulanacak Subgraph sürümü açıkça belirtilmiş olur. Belirli bir Subgraph sürümünü sorgulamak için Dağıtım Kimliği kullanmak, sorgulanan sürüm üzerinde tam kontrol sağladığı için daha gelişmiş ve sağlam bir yapı sunar. Ancak, bu yaklaşım her yeni Subgraph sürümü yayımlandığında sorgu kodunun manuel olarak güncellenmesini gerektirir. @@ -18,6 +23,12 @@ Dağıtım Kimliği kullanan örnek uç nokta: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph Kimliği Subgraph Kimliği (Subgraph ID), bir Subgraph için benzersiz bir tanımlayıcıdır ve Subgraph'in tüm sürümleri boyunca sabit kalır. En güncel Subgraph sürümünü sorgulamak için Subgraph Kimliği'nin kullanılması önerilir, ancak bununla ilgili bazı dikkat edilmesi gereken noktalar vardır. @@ -25,3 +36,20 @@ Subgraph Kimliği (Subgraph ID), bir Subgraph için benzersiz bir tanımlayıcı Subgraph Kimliği kullanılarak yapılan sorguların, yeni sürümün senkronize olması için zamana ihtiyaç duyması nedeniyle eski bir Subgraph sürümünden yanıt alan sorgulara neden olabileceğini unutmayın. Ayrıca, yeni sürümler şemada uyumsuz değişikliklere yol açabilir. Subgraph Kimliği kullanan örnek uç nokta: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From d5e0465c38c81e51fb60ad928e4304b385770f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:51 -0400 Subject: [PATCH 0940/1709] New translations subgraph-id-vs-deployment-id.mdx (Ukrainian) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/uk/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/uk/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/uk/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From e2b00ff4aa5d5d8377243b9c61f36c21f1891402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:52 -0400 Subject: [PATCH 0941/1709] New translations subgraph-id-vs-deployment-id.mdx (Chinese Simplified) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/zh/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index c715990d980a..c0a292e1436a 100644 --- a/website/src/pages/zh/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/zh/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: 子图 ID vs 部署 ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + Subgraph 是用Subgraph ID标明的,Subgraph 的每一版本都用部署ID标明。 当查询子图时,可以使用 ID。 虽然一般认为使用部署ID是因为它能够指定Subgraph的特定版本。 -以下是这两个ID之间的一些关键区别: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## 部署 ID @@ -18,6 +22,12 @@ Subgraph 是用Subgraph ID标明的,Subgraph 的每一版本都用部署ID标 `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## 子图 ID 子图ID 是子图的唯一标识符。它在所有版本的子图中保持常数。 建议使用Subgraph ID查询最新版本的 Subgraph ID,尽管有一些警告。 @@ -25,3 +35,20 @@ Subgraph 是用Subgraph ID标明的,Subgraph 的每一版本都用部署ID标 请注意,使用 Subgrap ID 查询可能会导致旧版本的 Subgraph 响应查询,因为新版本需要时间同步。 此外,新版本可能会引入破解模式更改。 使用Subgraph ID的示例终点: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 1beb8ae8d510e9dce40071cd695ec3e562348647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:53 -0400 Subject: [PATCH 0942/1709] New translations subgraph-id-vs-deployment-id.mdx (Urdu (Pakistan)) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/ur/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 3a51d42586d1..54bdbf70fe36 100644 --- a/website/src/pages/ur/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/ur/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: سب گراف شناخت بمقابلہ تعیناتی شناخت --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## تعیناتی شناخت @@ -18,6 +22,12 @@ When queries are made using a Subgraph's Deployment ID, we are specifying a vers `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## سب گراف شناخت The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 3279f5326a6506b1949d1475d989a66bf368e777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:54 -0400 Subject: [PATCH 0943/1709] New translations subgraph-id-vs-deployment-id.mdx (Vietnamese) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/vi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/vi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/vi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From d40639175eb63073a9f40450863dd1580efb0e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:56 -0400 Subject: [PATCH 0944/1709] New translations subgraph-id-vs-deployment-id.mdx (Marathi) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/mr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/mr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/mr/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From e7f5b654316c83ed2dfbfae6353ad3a582e6c516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Mon, 19 May 2025 12:17:57 -0400 Subject: [PATCH 0945/1709] New translations subgraph-id-vs-deployment-id.mdx (Hindi) --- .../querying/subgraph-id-vs-deployment-id.mdx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx b/website/src/pages/hi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx index 17258dd13ea1..59d5d230449e 100644 --- a/website/src/pages/hi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx +++ b/website/src/pages/hi/subgraphs/querying/subgraph-id-vs-deployment-id.mdx @@ -2,11 +2,15 @@ title: Subgraph ID vs Deployment ID --- +Managing and accessing Subgraphs relies on two distinct identification systems: Subgraph IDs and Deployment IDs. + A Subgraph is identified by a Subgraph ID, and each version of the Subgraph is identified by a Deployment ID. When querying a Subgraph, either ID can be used, though it is generally suggested that the Deployment ID is used due to its ability to specify a specific version of a Subgraph. -Here are some key differences between the two IDs: ![](/img/subgraph-id-vs-deployment-id.png) +Both identifiers are accessible in [Subgraph Studio](https://thegraph.com/studio/): + +![Highlights of where to find the Subgraph ID and Deployment ID](/img/subgraph-id-vs-deployment-id.png) ## Deployment ID @@ -18,6 +22,12 @@ Example endpoint that uses Deployment ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/deployments/id/QmfYaVdSSekUeK6expfm47tP8adg3NNdEGnVExqswsSwaB` +Using Deployment IDs for queries offers precise version control but comes with specific implications: + +- Advantages: Complete control over which version you're querying, ensuring consistent results +- Challenges: Requires manual updates to query code when new Subgraph versions are published +- Use case: Ideal for production environments where stability and predictability are crucial + ## Subgraph ID The Subgraph ID is a unique identifier for a Subgraph. It remains constant across all versions of a Subgraph. It is recommended to use the Subgraph ID to query the latest version of a Subgraph, although there are some caveats. @@ -25,3 +35,20 @@ The Subgraph ID is a unique identifier for a Subgraph. It remains constant acros Be aware that querying using Subgraph ID may result in queries being responded to by an older version of the Subgraph due to the new version needing time to sync. Also, new versions could introduce breaking schema changes. Example endpoint that uses Subgraph ID: `https://gateway-arbitrum.network.thegraph.com/api/[api-key]/subgraphs/id/FL3ePDCBbShPvfRJTaSCNnehiqxsPHzpLud6CpbHoeKW` + +Using Subgraph IDs comes with important considerations: + +- Benefits: Automatically queries the latest version, reducing maintenance overhead +- Limitations: May encounter version synchronization delays or breaking schema changes +- Use case: Better suited for development environments or when staying current is more important than version stability + +## Deployment ID vs Subgraph ID + +Here are the key differences between the two IDs: + +| Consideration | Deployment ID | Subgraph ID | +| ----------------------- | --------------------- | --------------- | +| Version Pinning | Specific version | Always latest | +| Maintenance Effort | High (manual updates) | Low (automatic) | +| Environment Suitability | Production | Development | +| Sync Status Awareness | Not required | Critical | From 9bd471b6cfc549b5c33151e6090da8210adaee3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:17 -0400 Subject: [PATCH 0946/1709] New translations managing-api-keys.mdx (Romanian) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ro/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ro/subgraphs/querying/managing-api-keys.mdx index aed3d10422e1..0a16fca09f15 100644 --- a/website/src/pages/ro/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ro/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 6e04edce434d25244cbdeb53ea246af1cf17f94f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:19 -0400 Subject: [PATCH 0947/1709] New translations managing-api-keys.mdx (French) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/fr/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/fr/subgraphs/querying/managing-api-keys.mdx index 644b58ccf482..cd7130a391fc 100644 --- a/website/src/pages/fr/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/fr/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Gestion des clés API +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Aperçu -Les clés API sont nécessaires pour interroger les subgraphs. Elles garantissent que les connexions entre les services d'application sont valides et autorisées, y compris l'authentification de l'utilisateur final et de l'appareil utilisant l'application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prérequis + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Créer et gérer des clés API +### Monitoring Usage -Allez sur [Subgraph Studio](https://thegraph.com/studio/) et cliquez sur l'onglet **API Keys** pour créer et gérer vos clés API pour des subgraphs spécifiques. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -Le tableau "Clés API" répertorie les clés API existantes et vous permet de les gérer ou de les supprimer. Pour chaque clé, vous pouvez voir son statut, le coût pour la période en cours, la limite de dépenses pour la période en cours et le nombre total de requêtes. +### Restricting Domain Access -Vous pouvez cliquer sur le "menu à trois points" à droite d'une clé API donnée pour : +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Renommer la clé API -- Régénérer la clé API -- Supprimer la clé API -- Gérer la limite de dépenses : il s'agit d'une limite de dépenses mensuelle facultative pour une clé API donnée, en USD. Cette limite s'applique à chaque période de facturation (mois civil). +### Limiting Subgraph Access -### Détails de la clé API +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -Vous pouvez cliquer sur une clé API individuelle pour afficher la page des détails : +## Ressources supplémentaires -1. Dans la section **Aperçu**, vous pouvez : - - Modifiez le nom de votre clé - - Régénérer les clés API - - Affichez l'utilisation actuelle de la clé API avec les statistiques : - - Nombre de requêtes - - Montant de GRT dépensé -2. Dans la section **Sécurité**, vous pouvez choisir des paramètres de sécurité en fonction du niveau de contrôle que vous souhaitez avoir. Plus précisément, vous pouvez : - - Visualisez et gérez les noms de domaine autorisés à utiliser votre clé API - - Attribuer des subgraphs qui peuvent être interrogés avec votre clé API +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From ad91b4cecb455ab8713c13047d83330cabd8907e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:22 -0400 Subject: [PATCH 0948/1709] New translations managing-api-keys.mdx (Spanish) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/es/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/es/subgraphs/querying/managing-api-keys.mdx index 50c2fbab7883..258f9d677c8e 100644 --- a/website/src/pages/es/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/es/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Descripción -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Recursos Adicionales -1. Under the **Overview** section, you can: - - Editar el nombre de tu clave - - Regenerar las claves API - - Ver el uso actual de la clave API con estadísticas: - - Número de consultas - - Cantidad de GRT gastado -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - Ver y administrar los nombres de dominio autorizados a utilizar tu clave API - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 9eef6d705e189460707b58bb555b084fcbb1c90c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:25 -0400 Subject: [PATCH 0949/1709] New translations managing-api-keys.mdx (Arabic) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ar/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ar/subgraphs/querying/managing-api-keys.mdx index 7b91a147ef47..ef1f3e6781b4 100644 --- a/website/src/pages/ar/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ar/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## نظره عامة -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## مصادر إضافية -1. Under the **Overview** section, you can: - - تعديل اسم المفتاح الخاص بك - - إعادة إنشاء مفاتيح API - - عرض الاستخدام الحالي لمفتاح API مع الإحصائيات: - - عدد الاستعلامات - - كمية GRT التي تم صرفها -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - عرض وإدارة أسماء النطاقات المصرح لها باستخدام مفتاح API الخاص بك - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From b71bbb0016345ff2018596d324c62558996ca510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:28 -0400 Subject: [PATCH 0950/1709] New translations managing-api-keys.mdx (Czech) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/cs/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/cs/subgraphs/querying/managing-api-keys.mdx index f2954c5593c0..a30fb3f56483 100644 --- a/website/src/pages/cs/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/cs/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Přehled -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Další zdroje -1. Under the **Overview** section, you can: - - Úprava názvu klíče - - Regenerace klíčů API - - Zobrazení aktuálního využití klíče API se statsi: - - Počet dotazů - - Výše vynaložených GRT -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - Zobrazení a správa názvů domén oprávněných používat váš klíč API - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From ff7cc1d293bb85848dbf720d3a1e89728e5cf765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:31 -0400 Subject: [PATCH 0951/1709] New translations managing-api-keys.mdx (German) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/de/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/de/subgraphs/querying/managing-api-keys.mdx index cc71c6e7afd0..16dd2228d3d7 100644 --- a/website/src/pages/de/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/de/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Verwalten von API-Schlüsseln +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Überblick -API-Schlüssel werden für die Abfrage von Subgraphen benötigt. Sie stellen sicher, dass die Verbindungen zwischen Anwendungsdiensten gültig und autorisiert sind, einschließlich der Authentifizierung des Endnutzers und des Geräts, das die Anwendung verwendet. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Voraussetzungen + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Erstellen und Verwalten von API-Schlüsseln +### Monitoring Usage -Gehen Sie zu [Subgraph Studio] (https://thegraph.com/studio/) und klicken Sie auf die Registerkarte **API-Schlüssel**, um Ihre API-Schlüssel für bestimmte Subgraphen zu erstellen und zu verwalten. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -Die Tabelle „API-Schlüssel“ listet die vorhandenen API-Schlüssel auf und ermöglicht es Ihnen, diese zu verwalten oder zu löschen. Für jeden Schlüssel können Sie seinen Status, die Kosten für den aktuellen Zeitraum, das Ausgabenlimit für den aktuellen Zeitraum und die Gesamtzahl der Abfragen sehen. +### Restricting Domain Access -Sie können auf das Menü mit den „drei Punkten“ rechts neben einem bestimmten API-Schlüssel klicken, um: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Umbenennen des API-Schlüssels -- API-Schlüssel neu generieren -- Löschen des API-Schlüssels -- Ausgabenlimit verwalten: Dies ist ein optionales monatliches Ausgabenlimit für einen bestimmten API-Schlüssel, in USD. Dieses Limit gilt pro Abrechnungszeitraum (Kalendermonat). +### Limiting Subgraph Access -### API-Schlüssel Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -Sie können auf einen einzelnen API-Schlüssel klicken, um die Detailseite anzuzeigen: +## Zusätzliche Ressourcen -1. Unter dem Abschnitt **Übersicht** können Sie: - - Bearbeiten Sie den Namen Ihres Schlüssels - - API-Schlüssel neu generieren - - Anzeige der aktuellen Nutzung des API-Schlüssels mit Statistiken: - - Anzahl der Abfragen - - Ausgegebener GRT-Betrag -2. Unter dem Abschnitt **Sicherheit** können Sie je nach gewünschter Kontrollstufe Sicherheitseinstellungen vornehmen. Im Einzelnen können Sie: - - Anzeigen und Verwalten der Domainnamen, die zur Verwendung Ihres API-Schlüssels berechtigt sind - - Zuweisung von Subgraphen, die mit Ihrem API-Schlüssel abgefragt werden können +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From b8aee7a476e022569bb575ea44a08f5c531e5586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:34 -0400 Subject: [PATCH 0952/1709] New translations managing-api-keys.mdx (Italian) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/it/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/it/subgraphs/querying/managing-api-keys.mdx index fc4ebe1f3daf..9e1b5a568fd3 100644 --- a/website/src/pages/it/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/it/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Panoramica -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Modificare il nome della chiave - - Rigenerare le chiavi API - - Visualizza l'utilizzo attuale della chiave API con le statistiche: - - Numero di query - - Importo di GRT speso -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - Visualizzare e gestire i nomi di dominio autorizzati a utilizzare la chiave API - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From f53a3848e0eb3d2b6f9c9ada9cbff237477c9145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:37 -0400 Subject: [PATCH 0953/1709] New translations managing-api-keys.mdx (Japanese) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ja/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ja/subgraphs/querying/managing-api-keys.mdx index 5e0531142b22..df2ec7ee4812 100644 --- a/website/src/pages/ja/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ja/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## 概要 -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## その他のリソース -1. Under the **Overview** section, you can: - - キー名の編集 - - API キーの再生成 - - API キーの現在の使用状況を統計で表示: - - クエリの数 - - 使用した GRT の量 -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - API キーの使用を許可されたドメイン名の表示と管理 - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 2b2153f9debad317961eb3a95e70b4e24879971d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:40 -0400 Subject: [PATCH 0954/1709] New translations managing-api-keys.mdx (Korean) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ko/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ko/subgraphs/querying/managing-api-keys.mdx index aed3d10422e1..0a16fca09f15 100644 --- a/website/src/pages/ko/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ko/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 95add7e9200add104e4639dd3fab0a47e5bfd140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:42 -0400 Subject: [PATCH 0955/1709] New translations managing-api-keys.mdx (Dutch) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/nl/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/nl/subgraphs/querying/managing-api-keys.mdx index aed3d10422e1..0a16fca09f15 100644 --- a/website/src/pages/nl/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/nl/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 60a58343865ffeca11d7dc7e5043f722e8f0a89e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:45 -0400 Subject: [PATCH 0956/1709] New translations managing-api-keys.mdx (Polish) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/pl/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/pl/subgraphs/querying/managing-api-keys.mdx index aed3d10422e1..0a16fca09f15 100644 --- a/website/src/pages/pl/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/pl/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 3492a39f96fd0d3734eab3d90364988747efd76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:48 -0400 Subject: [PATCH 0957/1709] New translations managing-api-keys.mdx (Portuguese) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/pt/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/pt/subgraphs/querying/managing-api-keys.mdx index 91502f546f69..a7455e2ba48f 100644 --- a/website/src/pages/pt/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/pt/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Como administrar as suas chaves de API +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Visão geral -Chaves de API são necessárias para solicitar queries de subgraphs, e garantem que as conexões entre serviços de aplicativo sejam válidas e autorizadas, o que inclui a autenticação do utilizador final e do dispositivo que usa o aplicativo. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Pré-requisitos + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Como Criar e Gerir Chaves de API +### Monitoring Usage -Vá para o [Subgraph Studio](https://thegraph.com/studio/) e clique na aba **API Keys** ("Chaves de API") para criar e gerir as suas chaves de API para subgraphs específicos. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -A tabela "API keys" lista chaves de API existentes, o que lhe dará a habilidade de gestar ou apagá-las. Para cada chave, é possível ver o seu estado, o custo para o período atual, o limite de gastos para o período atual, assim como número total de queries. +### Restricting Domain Access -É possível abrir o menu de "três pontos" ao lado direito de uma chave API para: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Renomear chave API -- Regenerar chave API -- Apagar chave API -- Gestar limite de gastos: este é um limite opcional de gastos mensais para uma chave API, em USD. Este limite é por período de cobrança (mês do calendário). +### Limiting Subgraph Access -### Detalhes de Uma Chave de API +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -É possível clicar numa chave API individual para exibir a sua página de Detalhes: +## Outros Recursos -1. Na secção **Visão Geral**, é possível: - - Alterar o nome da sua chave - - Regenerar chaves de API - - Ver o uso atual da chave de API com estatísticas: - - Número de queries - - Quantia de GRT gasta -2. Sob a secção **Security** ("Segurança"), pode-se escolher configurações de segurança a depender do nível de controle que deseja. Especificamente, é possível: - - Visualizar e gerir os nomes de domínio autorizados a usar a sua chave de API - - Apontar subgraphs que podem ser sujeitos a queries com a sua chave de API +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 25fd8ab3721b7a4c36d0decb916f3750d5663c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:51 -0400 Subject: [PATCH 0958/1709] New translations managing-api-keys.mdx (Russian) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ru/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ru/subgraphs/querying/managing-api-keys.mdx index b9a52472b66b..97e62fdca07f 100644 --- a/website/src/pages/ru/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ru/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Обзор -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Предварительные требования + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Создание и управление API ключами +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -В таблице "API keys" перечислены существующие ключи API и Вы можете управлять ими или удалять их. Для каждого ключа, Вы можете увидеть его статус, стоимость за текущий период, лимит расходов за текущий период и общее количество запросов. +### Restricting Domain Access -Вы можете нажать на меню "три точки" справа от заданного ключа API, чтобы: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Переименовать API ключ -- Восстановить API ключ -- Удалить API ключ -- Управлять лимитом расходов: это необязательный лимит ежемесячных расходов для данного API ключа в USD. Этот лимит за расчетный период (календарный месяц). +### Limiting Subgraph Access -### Детали API ключа +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -Вы можете нажать на отдельный ключ API, чтобы перейти на страницу с подробной информацией: +## Дополнительные ресурсы -1. В разделе **Обзор** можно: - - Отредактируйте свое ключевое имя - - Регенерировать ключи API - - Просмотр текущего использования ключа API со статистикой: - - Количество запросов - - Количество потраченных GRT -2. В разделе **Безопасность** Вы можете выбрать параметры безопасности в зависимости от необходимого Вам уровня контроля. А именно: - - Просматривайте доменные имена, авторизованные для использования вашего API-ключа, и управляйте ими - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 67268174231d38bc717480a086d8a9a6050e0817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:54 -0400 Subject: [PATCH 0959/1709] New translations managing-api-keys.mdx (Swedish) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/sv/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/sv/subgraphs/querying/managing-api-keys.mdx index 594527795da0..9404b2e542a8 100644 --- a/website/src/pages/sv/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/sv/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Översikt -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Ytterligare resurser -1. Under the **Overview** section, you can: - - Redigera nyckelns namn - - Återgenerera API-nycklar - - Visa aktuell användning av API-nyckeln med statistik: - - Antal förfrågningar - - Mängd GRT spenderad -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - Visa och hantera domännamn som har auktoriserats att använda din API-nyckel - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From eee38bf868cba3399a1a511d8b6bd97b1270b620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:56:57 -0400 Subject: [PATCH 0960/1709] New translations managing-api-keys.mdx (Turkish) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/tr/subgraphs/querying/managing-api-keys.mdx index 13ec1e900544..6068cb8df74f 100644 --- a/website/src/pages/tr/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/tr/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: API anahtarlarını yönetme +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Genel Bakış -Subgraph'leri sorgulamak için API anahtarları gereklidir. Bu anahtarlar, uygulama servisleri arasındaki bağlantıların geçerli ve yetkili olduğunu garanti eder; buna, uygulamayı kullanan son kullanıcı ve cihazın doğrulaması da dahildir. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### API Anahtarı Oluşturma ve Yönetme +### Monitoring Usage -[Subgraph Studio](https://thegraph.com/studio/) adresine gidin ve spesifik Subgraph'ler için API anahtarlarınızı oluşturmak ve yönetmek için **API Anahtarları** sekmesine tıklayın. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -"API anahtarları" tablosu, mevcut API anahtarlarını listeler ve bunları yönetmenize veya silmenize olanak tanır. Her anahtarın durumunu, geçerli dönemdeki maliyeti ve harcama limitini ve toplam sorgu sayısını görebilirsiniz. +### Restricting Domain Access -Belirli bir API anahtarının sağındaki "üç nokta" menüsüne tıklayarak şunları yapabilirsiniz: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- API anahtarını yeniden adlandır -- API anahtarını yeniden oluştur -- API anahtarını sil -- Harcama limitini yönet: Bu, belirli bir API anahtarı için isteğe bağlı aylık harcama limitidir ve USD cinsindendir. Bu limit, her faturalandırma dönemi (takvim ayı) için geçerlidir. +### Limiting Subgraph Access -### API Anahtarı Detayları +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -Bir API anahtarının üzerine tıklayarak Detaylar sayfasını görüntüleyebilirsiniz: +## Ek Kaynaklar -1. **Genel Bakış** bölümünde şunları yapabilirsiniz: - - Anahtar adınızı düzenleme - - API anahtarlarını yeniden oluşturma - - API anahtarının mevcut kullanımını istatistikleri ile birlikte görüntüleme: - - Sorgu sayısı - - Harcanan GRT miktarı -2. **Güvenlik** bölümünde, sahip olmak istediğiniz kontrol miktarına bağlı olarak güvenlik ayarlarını etkinleştirebilirsiniz. Spesifik olarak şunları yapabilirsiniz: - - API anahtarınızı kullanmaya yetkili alan adlarını görüntüleme ve yönetme - - API anahtarınızla sorgulanabilecek Subgraph'ler atama +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 76f47eebf1d2c69fb5d145767c5190f70a3bdaaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:00 -0400 Subject: [PATCH 0961/1709] New translations managing-api-keys.mdx (Ukrainian) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/uk/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/uk/subgraphs/querying/managing-api-keys.mdx index 53040c392ef4..9a03e761cb2c 100644 --- a/website/src/pages/uk/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/uk/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Додаткові матеріали -1. Under the **Overview** section, you can: - - Змінювати ім'я вашого ключа - - Повторно створити API-ключі - - Переглянути поточне використання API-ключа з такою статистикою: - - Кількість запитів - - Кількість витрачених GRT -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - Переглядати доменні імена, яким дозволено використовувати ваш API-ключ та керувати цими іменами - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From c2159458cfee89601918c7900fe5b03c142c7bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:03 -0400 Subject: [PATCH 0962/1709] New translations managing-api-keys.mdx (Chinese Simplified) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/zh/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/zh/subgraphs/querying/managing-api-keys.mdx index 536298f71c62..ffbe021f9b6e 100644 --- a/website/src/pages/zh/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/zh/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: 管理API 密钥 +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## 概述 -查询子图需要API键。它们确保应用程序服务之间的连接有效且经过授权,包括对最终用户和使用应用程序的设备进行身份验证。 +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## 先决条件 + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### 创建和管理API密钥 +### Monitoring Usage -转到[Subgraph Studio](https://thegraph.com/studio/)并单击**API键**选项卡为特定子图创建和管理API键。 +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -“API密钥”表列出了现有的API密钥,并允许您管理或删除它们。对于每个键,您可以看到它的状态、当前期间的成本、当前时期的支出限制和查询总数。 +### Restricting Domain Access -您可以单击给定API键右侧的“三点”菜单: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- 重命名API密钥 -- 重新生成 API 密钥 -- 删除API密钥 -- 管理支出限额:这是一个可选的每月支出限额,用于给定的API密钥,单位为美元。此限额按计费期(日历月)计算。 +### Limiting Subgraph Access -### API密钥详细信息 +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -您可以单击单个API键查看详细信息页面: +## 其他资源 -1. Under the **Overview** section, you can: - - 编辑您的密钥名称 - - 重新生成 API 密钥 - - 使用统计信息查看 API 密钥的当前使用情况: - - 查询数 - - 花费的 GRT 金额 -2. 在**安全**部分,您可以根据想要的控制级别选择进入安全设置。具体来说,您可以: - - 查看和管理授权使用您的 API 密钥的域名 - - 分配可以使用您的 API 密钥查询的子图 +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 966880d5b42e59b2836d8c6c3942348c7d1fa644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:06 -0400 Subject: [PATCH 0963/1709] New translations managing-api-keys.mdx (Urdu (Pakistan)) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/ur/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/ur/subgraphs/querying/managing-api-keys.mdx index 72e0694153f0..a62ef8077b45 100644 --- a/website/src/pages/ur/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/ur/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## جائزہ -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## اضافی وسائل -1. Under the **Overview** section, you can: - - اپنی کلید کے نام کو ترمیم دیں - - API کلیدوں کو دوبارہ سے بنائیں - - اعدادوشمار کے ساتھ API کلید کا موجودہ استعمال دیکھیں: - - کیوریز کی تعداد - - GRT کو تعداد جو خرچ ہوئ ہے -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - اپنی API کلید استعمال کرنے کے لیے مجاز ڈومین ناموں کو دیکھیں اور ان کا نظم کریں - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 17eff3fe7f2165718260556d050d127e9307b580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:09 -0400 Subject: [PATCH 0964/1709] New translations managing-api-keys.mdx (Vietnamese) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/vi/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/vi/subgraphs/querying/managing-api-keys.mdx index 259a727ed2df..af10064b624b 100644 --- a/website/src/pages/vi/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/vi/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Tổng quan -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## Additional Resources -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 8d8fa2e5d7f889e047d54cbc5d29add1da9269e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:11 -0400 Subject: [PATCH 0965/1709] New translations managing-api-keys.mdx (Marathi) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/mr/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/mr/subgraphs/querying/managing-api-keys.mdx index 0cd0d779e8bb..e1db4b8064c3 100644 --- a/website/src/pages/mr/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/mr/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: Managing API keys +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## सविश्लेषण -API keys are needed to query Subgraphs. They ensure that the connections between application services are valid and authorized, including authenticating the end user and the device using the application. +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## Prerequisites + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### Create and Manage API Keys +### Monitoring Usage -Go to [Subgraph Studio](https://thegraph.com/studio/) and click the **API Keys** tab to create and manage your API keys for specific Subgraphs. +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -The "API keys" table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. +### Restricting Domain Access -You can click the "three dots" menu to the right of a given API key to: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). +### Limiting Subgraph Access -### API Key Details +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -You can click on an individual API key to view the Details page: +## अतिरिक्त संसाधने -1. Under the **Overview** section, you can: - - Edit your key name - - Regenerate API keys - - View the current usage of the API key with stats: - - Number of queries - - Amount of GRT spent -2. Under the **Security** section, you can opt into security settings depending on the level of control you’d like to have. Specifically, you can: - - View and manage the domain names authorized to use your API key - - Assign Subgraphs that can be queried with your API key +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From 3c4a0097d27b3ae48d4e485fe824dcadc65f50cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 20 May 2025 14:57:14 -0400 Subject: [PATCH 0966/1709] New translations managing-api-keys.mdx (Hindi) --- .../subgraphs/querying/managing-api-keys.mdx | 94 ++++++++++++++----- 1 file changed, 73 insertions(+), 21 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/managing-api-keys.mdx b/website/src/pages/hi/subgraphs/querying/managing-api-keys.mdx index 257bce21d38c..450086fa648e 100644 --- a/website/src/pages/hi/subgraphs/querying/managing-api-keys.mdx +++ b/website/src/pages/hi/subgraphs/querying/managing-api-keys.mdx @@ -1,34 +1,86 @@ --- -title: API Keys को प्रबंधित करना +title: How to Manage API keys --- +This guide shows you how to create, manage, and secure API keys for your [Subgraphs](/subgraphs/developing/subgraphs/). + ## Overview -Subgraphs को query करने के लिए API keys आवश्यक होते हैं। ये यह सुनिश्चित करते हैं कि application services के बीच कनेक्शन वैध और अधिकृत हैं, साथ ही एंड यूज़र और डिवाइस की पहचान को प्रमाणित करते हैं। +API keys are required to query Subgraphs. They authenticate users and devices, authorize access to specific endpoints, enforce rate limits, and enable usage tracking across The Graph. + +## आवश्यक शर्तें + +- A [Subgraph Studio](https://thegraph.com/studio/) account + +## Create a New API Key + +1. Navigate to [Subgraph Studio](https://thegraph.com/studio/) +2. Click the **API Keys** tab in the navigation menu +3. Click the **Create API Key** button + +A new window will pop up: + +4. Enter a name for your API key +5. Optional: You can enable a period spending limit +6. Click **Create API Key** + +![Create API Key Window](/img/create-api-key.png) + +## Manage API Keys + +The “API keys” table lists existing API keys and allows you to manage or delete them. For each key, you can see its status, the cost for the current period, the spending limit for the current period, and the total number of queries. + +### How to Set Spending Limits + +1. Find your API key in the API keys table +2. Click the "three dots" icon next to the key +3. Select "Manage spending limit" +4. Enter your desired monthly limit in USD +5. Click **Save** + +> Manage spending limit: this is an optional monthly spending limit for a given API key, in USD. This limit is per billing period (calendar month). + +### How to Rename an API Key + +1. Click the "three dots" icon next to the key +2. Select "Rename API key" +3. Enter the new name +4. Click **Save** + +### How to Regenerate an API Key + +1. Click the "three dots" icon next to the key +2. Select "Regenerate API key" +3. Confirm the action in the pop up dialog + +> Warning: Regenerating an API key will invalidate the previous key immediately. Update your applications with the new key to prevent service interruption. + +## API Key Details -### API Keys बनाएं और प्रबंधित करें +### Monitoring Usage -Subgraph Studio पर जाएं: https://thegraph.com/studio/ और API Keys टैब पर क्लिक करें ताकि आप अपने विशेष Subgraphs के लिए API keys बना और प्रबंधित कर सकें। +1. Click on your API key to view the Details page +2. Check the **Overview** section for: + - Total number of queries + - GRT spent + - Current usage statistics -"API keys" तालिका मौजूदा API keys को सूचीबद्ध करती है और आपको उन्हें प्रबंधित या हटाने की अनुमति देती है। प्रत्येक कुंजी के लिए, आप इसकी स्थिति, वर्तमान अवधि के लिए लागत, वर्तमान अवधि के लिए खर्च सीमा और कुल क्वेरी संख्या देख सकते हैं। +### Restricting Domain Access -आप दिए गए API key के दाईं ओर स्थित "तीन बिंदु" मेनू पर क्लिक करके: +1. Click on your API key to open the Details page +2. Navigate to the **Security** section +3. Click "Add Domain" +4. Enter the authorized domain name +5. Click **Save** -- Rename API key -- Regenerate API key -- Delete API key -- Manage spending limit: यह USD में दी गई API key के लिए एक optional monthly spending limit है। यह limit per billing period (calendar month) के लिए है। +### Limiting Subgraph Access -### API Keysविवरण +1. In the API key Details page +2. Navigate to the **Security** section +3. Click "Assign Subgraphs" +4. Select the Subgraphs you want to authorize +5. Click **Save** -Details page देखने के लिए आप individual API key पर click कर सकते हैं: +## Additional Resources -1. **अवलोकन** अनुभाग के अंतर्गत, आप: - - अपना कुंजी नाम संपादित करें - - एपीआई कुंजियों को पुन: उत्पन्न करें - - आंकड़ों के साथ एपीआई कुंजी का वर्तमान उपयोग देखें: - - प्रश्नों की संख्या - - जीआरटी की राशि खर्च की गई -2. नीचे **Security** अनुभाग में, आप अपनी पसंद के अनुसार सुरक्षा सेटिंग्स को सक्रिय कर सकते हैं। विशेष रूप से, आप: - - अपनी API कुंजी का उपयोग करने के लिए प्राधिकृत डोमेन नाम देखें और प्रबंधित करें - - अपने API key के साथ जिन Subgraphs को query किया जा सकता है, उन्हें असाइन करें। +[Deploying Using Subgraph Studio](/subgraphs/developing/deploying/using-subgraph-studio/) From fcf43f7048538bd22429199413f9adb6422a3d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:23 -0400 Subject: [PATCH 0967/1709] New translations _meta-titles.json (Romanian) --- website/src/pages/ro/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/subgraphs/_meta-titles.json b/website/src/pages/ro/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/ro/subgraphs/_meta-titles.json +++ b/website/src/pages/ro/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 0125004ac8fac7eb7708d8a2f5301efab8810928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:26 -0400 Subject: [PATCH 0968/1709] New translations claude-mcp.mdx (Romanian) --- website/src/pages/ro/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ro/resources/claude-mcp.mdx diff --git a/website/src/pages/ro/resources/claude-mcp.mdx b/website/src/pages/ro/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/ro/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From dd4c0077ca6f617449812a22ffff6269d1e9ef29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:28 -0400 Subject: [PATCH 0969/1709] New translations claude.mdx (Romanian) --- website/src/pages/ro/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ro/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ro/subgraphs/mcp/claude.mdx b/website/src/pages/ro/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/ro/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 3634af267bc39228703952100540a2bca3500158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:29 -0400 Subject: [PATCH 0970/1709] New translations cline.mdx (Romanian) --- website/src/pages/ro/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ro/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ro/subgraphs/mcp/cline.mdx b/website/src/pages/ro/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/ro/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From b6a8aee9c3cddeeb8f87aeac0eec91329a9cd3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:30 -0400 Subject: [PATCH 0971/1709] New translations cursor.mdx (Romanian) --- website/src/pages/ro/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ro/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ro/subgraphs/mcp/cursor.mdx b/website/src/pages/ro/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/ro/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 0f9f401bc04ea5a409b0f21f7ce187381c06db20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:31 -0400 Subject: [PATCH 0972/1709] New translations _meta-titles.json (French) --- website/src/pages/fr/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/subgraphs/_meta-titles.json b/website/src/pages/fr/subgraphs/_meta-titles.json index e10948c648a1..d4c4fd0c68b3 100644 --- a/website/src/pages/fr/subgraphs/_meta-titles.json +++ b/website/src/pages/fr/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "Guides pratiques", - "best-practices": "Les meilleures pratiques" + "best-practices": "Les meilleures pratiques", + "mcp": "MCP" } From 71693e59d4c1bd0c8bd3284a1125b0a39df61bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:35 -0400 Subject: [PATCH 0973/1709] New translations claude-mcp.mdx (French) --- website/src/pages/fr/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/fr/resources/claude-mcp.mdx diff --git a/website/src/pages/fr/resources/claude-mcp.mdx b/website/src/pages/fr/resources/claude-mcp.mdx new file mode 100644 index 000000000000..5723d19d918c --- /dev/null +++ b/website/src/pages/fr/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prérequis + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 2071efc032112144651d99556e6e6ff11ff62455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:36 -0400 Subject: [PATCH 0974/1709] New translations claude.mdx (French) --- website/src/pages/fr/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/fr/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/fr/subgraphs/mcp/claude.mdx b/website/src/pages/fr/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..b3f27e6ac845 --- /dev/null +++ b/website/src/pages/fr/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prérequis + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 686242adfe7a087d86cf4a3213b182c50ec0f697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:37 -0400 Subject: [PATCH 0975/1709] New translations cline.mdx (French) --- website/src/pages/fr/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/fr/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/fr/subgraphs/mcp/cline.mdx b/website/src/pages/fr/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..25fe6fac9c66 --- /dev/null +++ b/website/src/pages/fr/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prérequis + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 13681c8cc122b82917db794b214ea7c7d142c859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:39 -0400 Subject: [PATCH 0976/1709] New translations cursor.mdx (French) --- website/src/pages/fr/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/fr/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/fr/subgraphs/mcp/cursor.mdx b/website/src/pages/fr/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..051be3d8fa6d --- /dev/null +++ b/website/src/pages/fr/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prérequis + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From d9f13a37627238244fe9d7a1d9c42da05c684371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:40 -0400 Subject: [PATCH 0977/1709] New translations _meta-titles.json (Spanish) --- website/src/pages/es/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/subgraphs/_meta-titles.json b/website/src/pages/es/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/es/subgraphs/_meta-titles.json +++ b/website/src/pages/es/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From ea64d0ca37df73b8c9aae22eb94b785e6982f01a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:44 -0400 Subject: [PATCH 0978/1709] New translations claude-mcp.mdx (Spanish) --- website/src/pages/es/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/es/resources/claude-mcp.mdx diff --git a/website/src/pages/es/resources/claude-mcp.mdx b/website/src/pages/es/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/es/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From eb6f3d0762b842739a4770d6aa014a00fb506454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:45 -0400 Subject: [PATCH 0979/1709] New translations claude.mdx (Spanish) --- website/src/pages/es/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/es/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/es/subgraphs/mcp/claude.mdx b/website/src/pages/es/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/es/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From d87b070fadcdb38c7b2a9bba084e9d506043e763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:46 -0400 Subject: [PATCH 0980/1709] New translations cline.mdx (Spanish) --- website/src/pages/es/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/es/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/es/subgraphs/mcp/cline.mdx b/website/src/pages/es/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/es/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From bc9053bab19c00a923d8b0bb77cc9fb9a410bff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:47 -0400 Subject: [PATCH 0981/1709] New translations cursor.mdx (Spanish) --- website/src/pages/es/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/es/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/es/subgraphs/mcp/cursor.mdx b/website/src/pages/es/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/es/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From ad12647e209b51626d507af8185c0694b19dddf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:48 -0400 Subject: [PATCH 0982/1709] New translations _meta-titles.json (Arabic) --- website/src/pages/ar/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/subgraphs/_meta-titles.json b/website/src/pages/ar/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/ar/subgraphs/_meta-titles.json +++ b/website/src/pages/ar/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 629eda27677f934de13bf1153a343bc029c55592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:52 -0400 Subject: [PATCH 0983/1709] New translations claude-mcp.mdx (Arabic) --- website/src/pages/ar/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ar/resources/claude-mcp.mdx diff --git a/website/src/pages/ar/resources/claude-mcp.mdx b/website/src/pages/ar/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/ar/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 31069c8b535d597ccf8798c5c166d880181d278b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:53 -0400 Subject: [PATCH 0984/1709] New translations claude.mdx (Arabic) --- website/src/pages/ar/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ar/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ar/subgraphs/mcp/claude.mdx b/website/src/pages/ar/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/ar/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 1c6d6c2658874f8a7a3cf31643f8492db1e33bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:54 -0400 Subject: [PATCH 0985/1709] New translations cline.mdx (Arabic) --- website/src/pages/ar/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ar/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ar/subgraphs/mcp/cline.mdx b/website/src/pages/ar/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/ar/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From b44431965838828ba26b3f9460ceb14e1f123a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:56 -0400 Subject: [PATCH 0986/1709] New translations cursor.mdx (Arabic) --- website/src/pages/ar/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ar/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ar/subgraphs/mcp/cursor.mdx b/website/src/pages/ar/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/ar/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 8985c2f3283c43b3e3709e2297edf7dabb080d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:34:57 -0400 Subject: [PATCH 0987/1709] New translations _meta-titles.json (Czech) --- website/src/pages/cs/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/subgraphs/_meta-titles.json b/website/src/pages/cs/subgraphs/_meta-titles.json index c2d850dfc35c..815ad1b8f4b4 100644 --- a/website/src/pages/cs/subgraphs/_meta-titles.json +++ b/website/src/pages/cs/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Osvědčené postupy" + "best-practices": "Osvědčené postupy", + "mcp": "MCP" } From 351c67a1922c75c4734d1c5bdff4cd863e7f2a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:01 -0400 Subject: [PATCH 0988/1709] New translations claude-mcp.mdx (Czech) --- website/src/pages/cs/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/cs/resources/claude-mcp.mdx diff --git a/website/src/pages/cs/resources/claude-mcp.mdx b/website/src/pages/cs/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/cs/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From f62ed3cea0e3ef45fbcb3c1f3ea64b7d22b1bac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:02 -0400 Subject: [PATCH 0989/1709] New translations claude.mdx (Czech) --- website/src/pages/cs/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/cs/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/cs/subgraphs/mcp/claude.mdx b/website/src/pages/cs/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/cs/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 6768af2f5e4001432e5d7770e7e7e0907c82b454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:03 -0400 Subject: [PATCH 0990/1709] New translations cline.mdx (Czech) --- website/src/pages/cs/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/cs/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/cs/subgraphs/mcp/cline.mdx b/website/src/pages/cs/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/cs/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 437a7d4d00bca629e273b58850129f30fa5cba64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:04 -0400 Subject: [PATCH 0991/1709] New translations cursor.mdx (Czech) --- website/src/pages/cs/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/cs/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/cs/subgraphs/mcp/cursor.mdx b/website/src/pages/cs/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/cs/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 9dd53cad3a5a5bfe6789eba5d9a9a15b5e828275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:06 -0400 Subject: [PATCH 0992/1709] New translations _meta-titles.json (German) --- website/src/pages/de/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/subgraphs/_meta-titles.json b/website/src/pages/de/subgraphs/_meta-titles.json index 1338cbaa797d..b2c9cd10eaee 100644 --- a/website/src/pages/de/subgraphs/_meta-titles.json +++ b/website/src/pages/de/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Abfragen", "developing": "Entwicklung", "guides": "Anleitungen", - "best-practices": "Bewährte Praktiken" + "best-practices": "Bewährte Praktiken", + "mcp": "MCP" } From ac252c76baf71060dc84b030de342e28ecc4c8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:10 -0400 Subject: [PATCH 0993/1709] New translations claude-mcp.mdx (German) --- website/src/pages/de/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/de/resources/claude-mcp.mdx diff --git a/website/src/pages/de/resources/claude-mcp.mdx b/website/src/pages/de/resources/claude-mcp.mdx new file mode 100644 index 000000000000..68a56c8fcf6d --- /dev/null +++ b/website/src/pages/de/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Voraussetzungen + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 805bbe1083c97faa60eb19aba4f8501fdecabb5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:11 -0400 Subject: [PATCH 0994/1709] New translations claude.mdx (German) --- website/src/pages/de/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/de/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/de/subgraphs/mcp/claude.mdx b/website/src/pages/de/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..a5e33a30ed22 --- /dev/null +++ b/website/src/pages/de/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Voraussetzungen + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 6bfbb30e98432b62a36b61b99e615503436be20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:12 -0400 Subject: [PATCH 0995/1709] New translations cline.mdx (German) --- website/src/pages/de/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/de/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/de/subgraphs/mcp/cline.mdx b/website/src/pages/de/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..58876001aa8f --- /dev/null +++ b/website/src/pages/de/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Voraussetzungen + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 86d85c82c36c365b678c4e3cf278633a53ae3076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:14 -0400 Subject: [PATCH 0996/1709] New translations cursor.mdx (German) --- website/src/pages/de/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/de/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/de/subgraphs/mcp/cursor.mdx b/website/src/pages/de/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..c8a7ae439298 --- /dev/null +++ b/website/src/pages/de/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Voraussetzungen + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 5e2ec289d5b0bda169d351818e015a8385d09ca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:15 -0400 Subject: [PATCH 0997/1709] New translations _meta-titles.json (Italian) --- website/src/pages/it/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/subgraphs/_meta-titles.json b/website/src/pages/it/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/it/subgraphs/_meta-titles.json +++ b/website/src/pages/it/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 7e5273c70761c66a314277ef3baa0ee95fcdd571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:19 -0400 Subject: [PATCH 0998/1709] New translations claude-mcp.mdx (Italian) --- website/src/pages/it/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/it/resources/claude-mcp.mdx diff --git a/website/src/pages/it/resources/claude-mcp.mdx b/website/src/pages/it/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/it/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From ef1ff5d8d5d637c00c5c579295bd368034910881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:20 -0400 Subject: [PATCH 0999/1709] New translations claude.mdx (Italian) --- website/src/pages/it/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/it/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/it/subgraphs/mcp/claude.mdx b/website/src/pages/it/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/it/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 474e32f57bca88d53e3383b76061f4d90aa5b2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:21 -0400 Subject: [PATCH 1000/1709] New translations cline.mdx (Italian) --- website/src/pages/it/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/it/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/it/subgraphs/mcp/cline.mdx b/website/src/pages/it/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/it/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From c8768772ccf52e8bc8ddd196affc22ba5e5f867c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:23 -0400 Subject: [PATCH 1001/1709] New translations cursor.mdx (Italian) --- website/src/pages/it/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/it/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/it/subgraphs/mcp/cursor.mdx b/website/src/pages/it/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/it/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 8ae94983a55cc74d6b030855ba4a07e361b2e798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:24 -0400 Subject: [PATCH 1002/1709] New translations _meta-titles.json (Japanese) --- website/src/pages/ja/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/subgraphs/_meta-titles.json b/website/src/pages/ja/subgraphs/_meta-titles.json index 5c6121aa7d88..cedc24a8e1b5 100644 --- a/website/src/pages/ja/subgraphs/_meta-titles.json +++ b/website/src/pages/ja/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "クエリ", "developing": "開発", "guides": "How-to Guides", - "best-practices": "ベストプラクティス" + "best-practices": "ベストプラクティス", + "mcp": "MCP" } From d82321299c72896ba901ce705c8f3d75d0bdda59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:28 -0400 Subject: [PATCH 1003/1709] New translations claude-mcp.mdx (Japanese) --- website/src/pages/ja/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ja/resources/claude-mcp.mdx diff --git a/website/src/pages/ja/resources/claude-mcp.mdx b/website/src/pages/ja/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/ja/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From a174fea6e18174f8e526fa642c1ad9446feb32be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:29 -0400 Subject: [PATCH 1004/1709] New translations claude.mdx (Japanese) --- website/src/pages/ja/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ja/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ja/subgraphs/mcp/claude.mdx b/website/src/pages/ja/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/ja/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From a3ee593c3f9d4a12cc6fc1dd860ea0b81d479cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:31 -0400 Subject: [PATCH 1005/1709] New translations cline.mdx (Japanese) --- website/src/pages/ja/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ja/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ja/subgraphs/mcp/cline.mdx b/website/src/pages/ja/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/ja/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 3c8a6634ccec8a8a065827a6ea58e3d0341334d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:32 -0400 Subject: [PATCH 1006/1709] New translations cursor.mdx (Japanese) --- website/src/pages/ja/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ja/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ja/subgraphs/mcp/cursor.mdx b/website/src/pages/ja/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/ja/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From ad005be7ca034106f3416bb78ba113cc38fb9f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:33 -0400 Subject: [PATCH 1007/1709] New translations _meta-titles.json (Korean) --- website/src/pages/ko/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/subgraphs/_meta-titles.json b/website/src/pages/ko/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/ko/subgraphs/_meta-titles.json +++ b/website/src/pages/ko/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 352b3fc5727298c5b336303c2e735237b6d79fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:37 -0400 Subject: [PATCH 1008/1709] New translations claude-mcp.mdx (Korean) --- website/src/pages/ko/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ko/resources/claude-mcp.mdx diff --git a/website/src/pages/ko/resources/claude-mcp.mdx b/website/src/pages/ko/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/ko/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From cf87c623cfce4054b05fb2a0de6b3e5975f88fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:38 -0400 Subject: [PATCH 1009/1709] New translations claude.mdx (Korean) --- website/src/pages/ko/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ko/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ko/subgraphs/mcp/claude.mdx b/website/src/pages/ko/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/ko/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 6dfd9d859f883476051cd3afd8885ab24b63feb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:39 -0400 Subject: [PATCH 1010/1709] New translations cline.mdx (Korean) --- website/src/pages/ko/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ko/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ko/subgraphs/mcp/cline.mdx b/website/src/pages/ko/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/ko/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 1dbe64696f9e11308fe339e6d192cab7eb6a9da9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:41 -0400 Subject: [PATCH 1011/1709] New translations cursor.mdx (Korean) --- website/src/pages/ko/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ko/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ko/subgraphs/mcp/cursor.mdx b/website/src/pages/ko/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/ko/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From f22bc78f346042e0177cfe3c358d3345cd4a90c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:42 -0400 Subject: [PATCH 1012/1709] New translations _meta-titles.json (Dutch) --- website/src/pages/nl/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/subgraphs/_meta-titles.json b/website/src/pages/nl/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/nl/subgraphs/_meta-titles.json +++ b/website/src/pages/nl/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 2b6a0156230bbbb041d44b0852fe7f1a93c13420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:46 -0400 Subject: [PATCH 1013/1709] New translations claude-mcp.mdx (Dutch) --- website/src/pages/nl/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/nl/resources/claude-mcp.mdx diff --git a/website/src/pages/nl/resources/claude-mcp.mdx b/website/src/pages/nl/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/nl/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From fe323495cd8b6a757a6d793fbe021b7b2031e998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:47 -0400 Subject: [PATCH 1014/1709] New translations claude.mdx (Dutch) --- website/src/pages/nl/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/nl/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/nl/subgraphs/mcp/claude.mdx b/website/src/pages/nl/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/nl/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 0be8c7e1759ee5f1ad09ad4b8905e0c0f66679da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:48 -0400 Subject: [PATCH 1015/1709] New translations cline.mdx (Dutch) --- website/src/pages/nl/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/nl/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/nl/subgraphs/mcp/cline.mdx b/website/src/pages/nl/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/nl/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 7b20437b538edf5d55424e0e5d25545f9a5ac2ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:50 -0400 Subject: [PATCH 1016/1709] New translations cursor.mdx (Dutch) --- website/src/pages/nl/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/nl/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/nl/subgraphs/mcp/cursor.mdx b/website/src/pages/nl/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/nl/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 604243d230dbf2df9550fef39d011312c36e6484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:51 -0400 Subject: [PATCH 1017/1709] New translations _meta-titles.json (Polish) --- website/src/pages/pl/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/subgraphs/_meta-titles.json b/website/src/pages/pl/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/pl/subgraphs/_meta-titles.json +++ b/website/src/pages/pl/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 09efe8af60c4cdcc5ce5c7b5f0d14b84c7ddeb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:55 -0400 Subject: [PATCH 1018/1709] New translations claude-mcp.mdx (Polish) --- website/src/pages/pl/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/pl/resources/claude-mcp.mdx diff --git a/website/src/pages/pl/resources/claude-mcp.mdx b/website/src/pages/pl/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/pl/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 1ff0d2f24ed6be31d6e65c3f212160a9d84ac511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:56 -0400 Subject: [PATCH 1019/1709] New translations claude.mdx (Polish) --- website/src/pages/pl/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/pl/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/pl/subgraphs/mcp/claude.mdx b/website/src/pages/pl/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/pl/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 963eceae58cc8cd8cc76f5ef1fcef78901e57e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:57 -0400 Subject: [PATCH 1020/1709] New translations cline.mdx (Polish) --- website/src/pages/pl/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/pl/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/pl/subgraphs/mcp/cline.mdx b/website/src/pages/pl/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/pl/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 4067a6beb965a0798818d45328d5569584001e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:58 -0400 Subject: [PATCH 1021/1709] New translations cursor.mdx (Polish) --- website/src/pages/pl/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/pl/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/pl/subgraphs/mcp/cursor.mdx b/website/src/pages/pl/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/pl/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 946968c0197cc98f2329081f7fd35d05da6913f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:35:59 -0400 Subject: [PATCH 1022/1709] New translations _meta-titles.json (Portuguese) --- website/src/pages/pt/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/subgraphs/_meta-titles.json b/website/src/pages/pt/subgraphs/_meta-titles.json index a72543795a1d..5057a939741b 100644 --- a/website/src/pages/pt/subgraphs/_meta-titles.json +++ b/website/src/pages/pt/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Queries", "developing": "Programação", "guides": "How-to Guides", - "best-practices": "Boas práticas" + "best-practices": "Boas práticas", + "mcp": "MCP" } From de1303f7d98695ffbff80e515ceb3a807ae6c8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:03 -0400 Subject: [PATCH 1023/1709] New translations claude-mcp.mdx (Portuguese) --- website/src/pages/pt/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/pt/resources/claude-mcp.mdx diff --git a/website/src/pages/pt/resources/claude-mcp.mdx b/website/src/pages/pt/resources/claude-mcp.mdx new file mode 100644 index 000000000000..a767b2c82056 --- /dev/null +++ b/website/src/pages/pt/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Pré-requisitos + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 5c14610b2aa023fd595dbdb9f21488611806bab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:05 -0400 Subject: [PATCH 1024/1709] New translations claude.mdx (Portuguese) --- website/src/pages/pt/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/pt/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/pt/subgraphs/mcp/claude.mdx b/website/src/pages/pt/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..f06e7d2a79cd --- /dev/null +++ b/website/src/pages/pt/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Pré-requisitos + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From eca3b8a7fa8fdef0de4aa39c0c3fdd6effcef8ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:06 -0400 Subject: [PATCH 1025/1709] New translations cline.mdx (Portuguese) --- website/src/pages/pt/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/pt/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/pt/subgraphs/mcp/cline.mdx b/website/src/pages/pt/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..c147a47025d1 --- /dev/null +++ b/website/src/pages/pt/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Pré-requisitos + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 05d2e552e2a57329a0f4cfb6fa33665756bcba6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:07 -0400 Subject: [PATCH 1026/1709] New translations cursor.mdx (Portuguese) --- website/src/pages/pt/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/pt/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/pt/subgraphs/mcp/cursor.mdx b/website/src/pages/pt/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..091d5966e21e --- /dev/null +++ b/website/src/pages/pt/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Pré-requisitos + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From ecf91e04ff2264a7f3a9ef8d83714333250aebb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:09 -0400 Subject: [PATCH 1027/1709] New translations _meta-titles.json (Russian) --- website/src/pages/ru/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/subgraphs/_meta-titles.json b/website/src/pages/ru/subgraphs/_meta-titles.json index 935e730c6eb3..59c5c3d6db97 100644 --- a/website/src/pages/ru/subgraphs/_meta-titles.json +++ b/website/src/pages/ru/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Запрос", "developing": "Разработка", "guides": "How-to Guides", - "best-practices": "Лучшие практики" + "best-practices": "Лучшие практики", + "mcp": "MCP" } From 5de93c30b79155940f16db2fea0e3b0491fe50b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:12 -0400 Subject: [PATCH 1028/1709] New translations claude-mcp.mdx (Russian) --- website/src/pages/ru/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ru/resources/claude-mcp.mdx diff --git a/website/src/pages/ru/resources/claude-mcp.mdx b/website/src/pages/ru/resources/claude-mcp.mdx new file mode 100644 index 000000000000..1e2c8cbc5616 --- /dev/null +++ b/website/src/pages/ru/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Предварительные требования + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From e52adf1de2626a888dc9f6ff4737153f1de0ed3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:14 -0400 Subject: [PATCH 1029/1709] New translations claude.mdx (Russian) --- website/src/pages/ru/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ru/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ru/subgraphs/mcp/claude.mdx b/website/src/pages/ru/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..a3b8218dff06 --- /dev/null +++ b/website/src/pages/ru/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Предварительные требования + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From f053b2b017d88976776bf853e1516e4e63442b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:15 -0400 Subject: [PATCH 1030/1709] New translations cline.mdx (Russian) --- website/src/pages/ru/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ru/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ru/subgraphs/mcp/cline.mdx b/website/src/pages/ru/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..17a14a6c47ce --- /dev/null +++ b/website/src/pages/ru/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Предварительные требования + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From d1779fe9328312ecd80b3f9fd447939cef877092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:16 -0400 Subject: [PATCH 1031/1709] New translations cursor.mdx (Russian) --- website/src/pages/ru/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ru/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ru/subgraphs/mcp/cursor.mdx b/website/src/pages/ru/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..fa0b160f2973 --- /dev/null +++ b/website/src/pages/ru/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Предварительные требования + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From d619c9500072cf119d6a9301c71c261f03c4e06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:17 -0400 Subject: [PATCH 1032/1709] New translations _meta-titles.json (Swedish) --- website/src/pages/sv/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/subgraphs/_meta-titles.json b/website/src/pages/sv/subgraphs/_meta-titles.json index 79dc0c23f596..bb0d896e0625 100644 --- a/website/src/pages/sv/subgraphs/_meta-titles.json +++ b/website/src/pages/sv/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Bästa praxis" + "best-practices": "Bästa praxis", + "mcp": "MCP" } From 7164b4154b43ae8034b8218f90b8e8fece093f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:22 -0400 Subject: [PATCH 1033/1709] New translations claude-mcp.mdx (Swedish) --- website/src/pages/sv/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/sv/resources/claude-mcp.mdx diff --git a/website/src/pages/sv/resources/claude-mcp.mdx b/website/src/pages/sv/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/sv/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 0e76b2b51c850bee0ed9cc853cbac7102bcf71ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:23 -0400 Subject: [PATCH 1034/1709] New translations claude.mdx (Swedish) --- website/src/pages/sv/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/sv/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/sv/subgraphs/mcp/claude.mdx b/website/src/pages/sv/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/sv/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From f218627c64760f6220f4615c8e7f301667da42a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:24 -0400 Subject: [PATCH 1035/1709] New translations cline.mdx (Swedish) --- website/src/pages/sv/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/sv/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/sv/subgraphs/mcp/cline.mdx b/website/src/pages/sv/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/sv/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 8375eb16e68383734dd851cd13fc9576955247c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:26 -0400 Subject: [PATCH 1036/1709] New translations cursor.mdx (Swedish) --- website/src/pages/sv/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/sv/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/sv/subgraphs/mcp/cursor.mdx b/website/src/pages/sv/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/sv/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 1508daaf7b663a2272abd751354bf4d599697241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:27 -0400 Subject: [PATCH 1037/1709] New translations _meta-titles.json (Turkish) --- website/src/pages/tr/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/subgraphs/_meta-titles.json b/website/src/pages/tr/subgraphs/_meta-titles.json index 1bfcfe87a948..b7139f01d3ce 100644 --- a/website/src/pages/tr/subgraphs/_meta-titles.json +++ b/website/src/pages/tr/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Sorgulama", "developing": "Geliştirme", "guides": "How-to Guides", - "best-practices": "En İyi Uygulamalar" + "best-practices": "En İyi Uygulamalar", + "mcp": "MCP" } From a1985bf2da3cef5e1a4c702302f446a0b1d0abdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:31 -0400 Subject: [PATCH 1038/1709] New translations claude-mcp.mdx (Turkish) --- website/src/pages/tr/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/tr/resources/claude-mcp.mdx diff --git a/website/src/pages/tr/resources/claude-mcp.mdx b/website/src/pages/tr/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/tr/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 0151fdc24ba1315edde3af46f56eb10ec7ab740c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:32 -0400 Subject: [PATCH 1039/1709] New translations claude.mdx (Turkish) --- website/src/pages/tr/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/tr/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/tr/subgraphs/mcp/claude.mdx b/website/src/pages/tr/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/tr/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From f359b0d8b93f73c3585becfb0b3d60c43f223666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:33 -0400 Subject: [PATCH 1040/1709] New translations cline.mdx (Turkish) --- website/src/pages/tr/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/tr/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/tr/subgraphs/mcp/cline.mdx b/website/src/pages/tr/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/tr/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 952c05f99ba93e4da00633c138ae9a0896d5c354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:34 -0400 Subject: [PATCH 1041/1709] New translations cursor.mdx (Turkish) --- website/src/pages/tr/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/tr/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/tr/subgraphs/mcp/cursor.mdx b/website/src/pages/tr/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/tr/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 3c7ff244f11b30dce9aea03d3547ffaa2187bd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:35 -0400 Subject: [PATCH 1042/1709] New translations _meta-titles.json (Ukrainian) --- website/src/pages/uk/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/subgraphs/_meta-titles.json b/website/src/pages/uk/subgraphs/_meta-titles.json index 06078a2635a4..3498d1371306 100644 --- a/website/src/pages/uk/subgraphs/_meta-titles.json +++ b/website/src/pages/uk/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Найкращі практики" + "best-practices": "Найкращі практики", + "mcp": "MCP" } From 67df5a07622c248a1bef58200483e6d9a7baf6fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:39 -0400 Subject: [PATCH 1043/1709] New translations claude-mcp.mdx (Ukrainian) --- website/src/pages/uk/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/uk/resources/claude-mcp.mdx diff --git a/website/src/pages/uk/resources/claude-mcp.mdx b/website/src/pages/uk/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/uk/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From fae84f1ad0b8b5b8165e7703c9022d65c84f4b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:41 -0400 Subject: [PATCH 1044/1709] New translations claude.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/uk/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/uk/subgraphs/mcp/claude.mdx b/website/src/pages/uk/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/uk/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 7d6fa76e125cf45244db1dafc6bce00d813bbfdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:42 -0400 Subject: [PATCH 1045/1709] New translations cline.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/uk/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/uk/subgraphs/mcp/cline.mdx b/website/src/pages/uk/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/uk/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 34b4811859c01f8109b16bc4eafe7dcfa8a445fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:43 -0400 Subject: [PATCH 1046/1709] New translations cursor.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/uk/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/uk/subgraphs/mcp/cursor.mdx b/website/src/pages/uk/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/uk/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 4d8a7b22beba53de2e1098a3cd882be80f005d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:44 -0400 Subject: [PATCH 1047/1709] New translations _meta-titles.json (Chinese Simplified) --- website/src/pages/zh/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/subgraphs/_meta-titles.json b/website/src/pages/zh/subgraphs/_meta-titles.json index b1655fee1ce1..3b1c4fed15a6 100644 --- a/website/src/pages/zh/subgraphs/_meta-titles.json +++ b/website/src/pages/zh/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "查询", "developing": "开发", "guides": "操作指南", - "best-practices": "最佳实践" + "best-practices": "最佳实践", + "mcp": "MCP" } From 8c3ef73e183326f2bf813f4ac3fb4f764088e51d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:48 -0400 Subject: [PATCH 1048/1709] New translations claude-mcp.mdx (Chinese Simplified) --- website/src/pages/zh/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/zh/resources/claude-mcp.mdx diff --git a/website/src/pages/zh/resources/claude-mcp.mdx b/website/src/pages/zh/resources/claude-mcp.mdx new file mode 100644 index 000000000000..486a7b0888d6 --- /dev/null +++ b/website/src/pages/zh/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## 先决条件 + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## 故障排除 + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 294b6c660361b1710e74a044505a344f2648183e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:49 -0400 Subject: [PATCH 1049/1709] New translations claude.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/zh/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/zh/subgraphs/mcp/claude.mdx b/website/src/pages/zh/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..383b48cb969d --- /dev/null +++ b/website/src/pages/zh/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude 桌面 +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## 先决条件 + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **设置** > **开发者** > **编辑配置** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## 故障排除 + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 8361d1f70317977a49f57a15bb92fc22e822b622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:51 -0400 Subject: [PATCH 1050/1709] New translations cline.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/zh/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/zh/subgraphs/mcp/cline.mdx b/website/src/pages/zh/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..377366518bc7 --- /dev/null +++ b/website/src/pages/zh/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## 先决条件 + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +创建或编辑您的 `claude_desktop_config.json` 文件。 + +> **MCP 服务器** > **安装** > **配置 MCP 服务器** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From c0fd2eaad64495ac01dd89271a6600add9ea715c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:52 -0400 Subject: [PATCH 1051/1709] New translations cursor.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/zh/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/zh/subgraphs/mcp/cursor.mdx b/website/src/pages/zh/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..f2d72da85ced --- /dev/null +++ b/website/src/pages/zh/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## 先决条件 + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +创建或编辑您的`~/.cursor/mcp.json`文件。 + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 99a325d5bdaf5338022b173887fd4a78ce219d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:54 -0400 Subject: [PATCH 1052/1709] New translations _meta-titles.json (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/subgraphs/_meta-titles.json b/website/src/pages/ur/subgraphs/_meta-titles.json index 6d4a697a0e94..bd9d7799ab08 100644 --- a/website/src/pages/ur/subgraphs/_meta-titles.json +++ b/website/src/pages/ur/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "بہترین طریقے" + "best-practices": "بہترین طریقے", + "mcp": "MCP" } From 0d5b8744f7af97b5474f28fc9333753076269a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:57 -0400 Subject: [PATCH 1053/1709] New translations claude-mcp.mdx (Urdu (Pakistan)) --- website/src/pages/ur/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/ur/resources/claude-mcp.mdx diff --git a/website/src/pages/ur/resources/claude-mcp.mdx b/website/src/pages/ur/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/ur/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From f8f7da3f571341b2ed7145915e2f4bb10f8cf479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:36:59 -0400 Subject: [PATCH 1054/1709] New translations claude.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/ur/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/ur/subgraphs/mcp/claude.mdx b/website/src/pages/ur/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/ur/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 5011549248e0937ffc403325d776e7c33fcaee39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:00 -0400 Subject: [PATCH 1055/1709] New translations cline.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/ur/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/ur/subgraphs/mcp/cline.mdx b/website/src/pages/ur/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/ur/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From b79c9a10ac66754da1d332bce3763157154f0c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:01 -0400 Subject: [PATCH 1056/1709] New translations cursor.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/ur/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/ur/subgraphs/mcp/cursor.mdx b/website/src/pages/ur/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/ur/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From fa7e97a7d0209493cb39501413b8bbcd1639f24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:03 -0400 Subject: [PATCH 1057/1709] New translations _meta-titles.json (Vietnamese) --- website/src/pages/vi/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/subgraphs/_meta-titles.json b/website/src/pages/vi/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/vi/subgraphs/_meta-titles.json +++ b/website/src/pages/vi/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 94426e73dc6a2d656146a294ccc61e1d830f5e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:07 -0400 Subject: [PATCH 1058/1709] New translations claude-mcp.mdx (Vietnamese) --- website/src/pages/vi/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/vi/resources/claude-mcp.mdx diff --git a/website/src/pages/vi/resources/claude-mcp.mdx b/website/src/pages/vi/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/vi/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 26afce1f186fb109c52b9d871ce105d6c1e1b519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:08 -0400 Subject: [PATCH 1059/1709] New translations claude.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/vi/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/vi/subgraphs/mcp/claude.mdx b/website/src/pages/vi/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/vi/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 9514d094a10c0d586da5eb2be8a7bc88366ed618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:09 -0400 Subject: [PATCH 1060/1709] New translations cline.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/vi/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/vi/subgraphs/mcp/cline.mdx b/website/src/pages/vi/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/vi/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 2a34ffed99524d4dc538270fa9465216a9ef8dc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:11 -0400 Subject: [PATCH 1061/1709] New translations cursor.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/vi/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/vi/subgraphs/mcp/cursor.mdx b/website/src/pages/vi/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/vi/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From ecc3cb7b9d067a7ee969c0c51ee364dce87f937f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:12 -0400 Subject: [PATCH 1062/1709] New translations _meta-titles.json (Marathi) --- website/src/pages/mr/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/subgraphs/_meta-titles.json b/website/src/pages/mr/subgraphs/_meta-titles.json index 3fd405eed29a..f095d374344f 100644 --- a/website/src/pages/mr/subgraphs/_meta-titles.json +++ b/website/src/pages/mr/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "Querying", "developing": "Developing", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From 04039a8d25248fdd49e5a0dde5001fb0bd25b09c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:15 -0400 Subject: [PATCH 1063/1709] New translations claude-mcp.mdx (Marathi) --- website/src/pages/mr/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/mr/resources/claude-mcp.mdx diff --git a/website/src/pages/mr/resources/claude-mcp.mdx b/website/src/pages/mr/resources/claude-mcp.mdx new file mode 100644 index 000000000000..365d23e1e207 --- /dev/null +++ b/website/src/pages/mr/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## Prerequisites + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From 839494b9a181f3ca1558c0461106ff70dec1d987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:17 -0400 Subject: [PATCH 1064/1709] New translations claude.mdx (Marathi) --- website/src/pages/mr/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/mr/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/mr/subgraphs/mcp/claude.mdx b/website/src/pages/mr/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..cb023bed7bf0 --- /dev/null +++ b/website/src/pages/mr/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 1fd9f5b27753a1bbd5ad90da7698315999b28f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:18 -0400 Subject: [PATCH 1065/1709] New translations cline.mdx (Marathi) --- website/src/pages/mr/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/mr/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/mr/subgraphs/mcp/cline.mdx b/website/src/pages/mr/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..6714e445c0b2 --- /dev/null +++ b/website/src/pages/mr/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From fdf3d5dea9d25c94a882a4e8cb5d23bb98e63aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:19 -0400 Subject: [PATCH 1066/1709] New translations cursor.mdx (Marathi) --- website/src/pages/mr/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/mr/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/mr/subgraphs/mcp/cursor.mdx b/website/src/pages/mr/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..298f43ece048 --- /dev/null +++ b/website/src/pages/mr/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 0f98ea0a327791b9d8a8281ecbe62a1f7eab8e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:20 -0400 Subject: [PATCH 1067/1709] New translations _meta-titles.json (Hindi) --- website/src/pages/hi/subgraphs/_meta-titles.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/_meta-titles.json b/website/src/pages/hi/subgraphs/_meta-titles.json index 87cd473806ba..2e0336761d36 100644 --- a/website/src/pages/hi/subgraphs/_meta-titles.json +++ b/website/src/pages/hi/subgraphs/_meta-titles.json @@ -2,5 +2,6 @@ "querying": "queries", "developing": "विकसित करना", "guides": "How-to Guides", - "best-practices": "Best Practices" + "best-practices": "Best Practices", + "mcp": "MCP" } From ee7879c75227bfe72a0605ebc1b7af364691affb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:24 -0400 Subject: [PATCH 1068/1709] New translations claude-mcp.mdx (Hindi) --- website/src/pages/hi/resources/claude-mcp.mdx | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 website/src/pages/hi/resources/claude-mcp.mdx diff --git a/website/src/pages/hi/resources/claude-mcp.mdx b/website/src/pages/hi/resources/claude-mcp.mdx new file mode 100644 index 000000000000..8513aae562d0 --- /dev/null +++ b/website/src/pages/hi/resources/claude-mcp.mdx @@ -0,0 +1,115 @@ +--- +title: Claude MCP +--- + +This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. + +## What You Can Do + +With these integrations, you can: + +- **Token API**: Access token and wallet information across multiple blockchains +- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries + +## आवश्यक शर्तें + +- [Node.js](https://nodejs.org/en/download/) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed +- API keys: + - Token API key from [The Graph Market](https://thegraph.market/) + - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +## Configuration Steps + +### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** + +Paths by operating system: + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +### 2. Add Configuration + +Replace the contents of the existing config file with: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Keys + +Replace: + +- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) +- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) + +### 4. Save and Restart + +- Save the configuration file +- Restart Claude Desktop + +### 5. Add The Graph Resources in Claude + +After configuration: + +1. Start a new conversation in Claude Desktop +2. Click on the context menu (top right) +3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP + +> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. + +### 6. Run Queries + +Here are some example queries you can try after setting up the resources: + +### Subgraph Queries + +``` +What are the top pools in Uniswap? +``` + +``` +Who are the top Delegators of The Graph Protocol? +``` + +``` +Please make a bar chart for the number of active loans in Compound for the last 7 days +``` + +### Token API Queries + +``` +Show me the current price of ETH +``` + +``` +What are the top tokens by market cap on Ethereum? +``` + +``` +Analyze this wallet address: 0x... +``` + +## Troubleshooting + +If you encounter issues: + +1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal +2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file +3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs +4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop From f0a9d506242de66dafd8e59e019b1edfb7194ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:25 -0400 Subject: [PATCH 1069/1709] New translations claude.mdx (Hindi) --- website/src/pages/hi/subgraphs/mcp/claude.mdx | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 website/src/pages/hi/subgraphs/mcp/claude.mdx diff --git a/website/src/pages/hi/subgraphs/mcp/claude.mdx b/website/src/pages/hi/subgraphs/mcp/claude.mdx new file mode 100644 index 000000000000..884594ea143a --- /dev/null +++ b/website/src/pages/hi/subgraphs/mcp/claude.mdx @@ -0,0 +1,180 @@ +--- +title: Claude Desktop +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. + +## What You Can Do + +The Subgraph MCP integration enables you to: + +- Access the GraphQL schema for any Subgraph on The Graph Network +- Execute GraphQL queries against any Subgraph deployment +- Find top Subgraph deployments for a given keyword or contract address +- Get 30-day query volume for Subgraph deployments +- Ask natural language questions about Subgraph data without writing GraphQL queries manually + +## आवश्यक शर्तें + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` From 30f3175c45c6cc7b6b4653ffb8de23c1823f922c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:27 -0400 Subject: [PATCH 1070/1709] New translations cline.mdx (Hindi) --- website/src/pages/hi/subgraphs/mcp/cline.mdx | 99 ++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 website/src/pages/hi/subgraphs/mcp/cline.mdx diff --git a/website/src/pages/hi/subgraphs/mcp/cline.mdx b/website/src/pages/hi/subgraphs/mcp/cline.mdx new file mode 100644 index 000000000000..4e61e69c2437 --- /dev/null +++ b/website/src/pages/hi/subgraphs/mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. + +## आवश्यक शर्तें + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "The Graph" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From a61734fedbf8ad6eb354f54a36e91e52b0a843e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 21 May 2025 14:37:28 -0400 Subject: [PATCH 1071/1709] New translations cursor.mdx (Hindi) --- website/src/pages/hi/subgraphs/mcp/cursor.mdx | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 website/src/pages/hi/subgraphs/mcp/cursor.mdx diff --git a/website/src/pages/hi/subgraphs/mcp/cursor.mdx b/website/src/pages/hi/subgraphs/mcp/cursor.mdx new file mode 100644 index 000000000000..de9f7ef82582 --- /dev/null +++ b/website/src/pages/hi/subgraphs/mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. + +## आवश्यक शर्तें + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment From 3a4f333876344aaf7953269723fd8554ee4325b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:41 -0400 Subject: [PATCH 1072/1709] New translations claude-mcp.mdx (Romanian) --- website/src/pages/ro/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/resources/claude-mcp.mdx b/website/src/pages/ro/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/ro/resources/claude-mcp.mdx +++ b/website/src/pages/ro/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 6e668ad7ec694d793c210bdc50ad36d40c5e5524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:42 -0400 Subject: [PATCH 1073/1709] New translations claude.mdx (Romanian) --- website/src/pages/ro/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/subgraphs/mcp/claude.mdx b/website/src/pages/ro/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/ro/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ro/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 7883ff88a6333943d7b9aed16bcfa1ffec2919ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:43 -0400 Subject: [PATCH 1074/1709] New translations cline.mdx (Romanian) --- website/src/pages/ro/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/subgraphs/mcp/cline.mdx b/website/src/pages/ro/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/ro/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ro/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 8a7590d358c3e2065ed1eff91af46d0dc4c84075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:45 -0400 Subject: [PATCH 1075/1709] New translations claude-mcp.mdx (French) --- website/src/pages/fr/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/resources/claude-mcp.mdx b/website/src/pages/fr/resources/claude-mcp.mdx index 5723d19d918c..ef0b3c7a0d43 100644 --- a/website/src/pages/fr/resources/claude-mcp.mdx +++ b/website/src/pages/fr/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From cb51a6dff2c552ae7b87aa78c4db47eb51e42df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:46 -0400 Subject: [PATCH 1076/1709] New translations claude.mdx (French) --- website/src/pages/fr/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/subgraphs/mcp/claude.mdx b/website/src/pages/fr/subgraphs/mcp/claude.mdx index b3f27e6ac845..2249aa840560 100644 --- a/website/src/pages/fr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/fr/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 633f26032d1b53e579a497b2c2a710882e780fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:47 -0400 Subject: [PATCH 1077/1709] New translations cline.mdx (French) --- website/src/pages/fr/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/subgraphs/mcp/cline.mdx b/website/src/pages/fr/subgraphs/mcp/cline.mdx index 25fe6fac9c66..a97d7b267247 100644 --- a/website/src/pages/fr/subgraphs/mcp/cline.mdx +++ b/website/src/pages/fr/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 44f7f5f32e5e8d4de782bcedae174c19beac87ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:49 -0400 Subject: [PATCH 1078/1709] New translations claude-mcp.mdx (Spanish) --- website/src/pages/es/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/resources/claude-mcp.mdx b/website/src/pages/es/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/es/resources/claude-mcp.mdx +++ b/website/src/pages/es/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 872d427c8443b329364cf7e2a1a1c130897675ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:50 -0400 Subject: [PATCH 1079/1709] New translations claude.mdx (Spanish) --- website/src/pages/es/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/subgraphs/mcp/claude.mdx b/website/src/pages/es/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/es/subgraphs/mcp/claude.mdx +++ b/website/src/pages/es/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 358f90c2922cb617a54f589bfc1854254423a38e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:51 -0400 Subject: [PATCH 1080/1709] New translations cline.mdx (Spanish) --- website/src/pages/es/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/subgraphs/mcp/cline.mdx b/website/src/pages/es/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/es/subgraphs/mcp/cline.mdx +++ b/website/src/pages/es/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 1d8555ffb3788f028a3650fc92575df446a2ba2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:53 -0400 Subject: [PATCH 1081/1709] New translations claude-mcp.mdx (Arabic) --- website/src/pages/ar/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/resources/claude-mcp.mdx b/website/src/pages/ar/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/ar/resources/claude-mcp.mdx +++ b/website/src/pages/ar/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 2d4d1de0f29a16c9727642883f12dd43300a68ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:54 -0400 Subject: [PATCH 1082/1709] New translations claude.mdx (Arabic) --- website/src/pages/ar/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/subgraphs/mcp/claude.mdx b/website/src/pages/ar/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/ar/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ar/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 1091b005d42afba7bc406c079fa230a67f328eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:56 -0400 Subject: [PATCH 1083/1709] New translations cline.mdx (Arabic) --- website/src/pages/ar/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/subgraphs/mcp/cline.mdx b/website/src/pages/ar/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/ar/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ar/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 679d71a1a93cbe875afc6e2730d81d6d1db6c3be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:57 -0400 Subject: [PATCH 1084/1709] New translations claude-mcp.mdx (Czech) --- website/src/pages/cs/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/resources/claude-mcp.mdx b/website/src/pages/cs/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/cs/resources/claude-mcp.mdx +++ b/website/src/pages/cs/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From d426167476d998efd283fbee55476b5b294a6ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:58 -0400 Subject: [PATCH 1085/1709] New translations claude.mdx (Czech) --- website/src/pages/cs/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/subgraphs/mcp/claude.mdx b/website/src/pages/cs/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/cs/subgraphs/mcp/claude.mdx +++ b/website/src/pages/cs/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From f92dd2a221e88647f95f9830344aa846bc79ab3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:31:59 -0400 Subject: [PATCH 1086/1709] New translations cline.mdx (Czech) --- website/src/pages/cs/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/subgraphs/mcp/cline.mdx b/website/src/pages/cs/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/cs/subgraphs/mcp/cline.mdx +++ b/website/src/pages/cs/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 441fa978b8c62cd9aeb132d04333606cbcf628a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:01 -0400 Subject: [PATCH 1087/1709] New translations claude-mcp.mdx (German) --- website/src/pages/de/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/resources/claude-mcp.mdx b/website/src/pages/de/resources/claude-mcp.mdx index 68a56c8fcf6d..5e1e68159023 100644 --- a/website/src/pages/de/resources/claude-mcp.mdx +++ b/website/src/pages/de/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 21c63a6da707b67e62f2f9054372576dcefbe8ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:02 -0400 Subject: [PATCH 1088/1709] New translations claude.mdx (German) --- website/src/pages/de/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/subgraphs/mcp/claude.mdx b/website/src/pages/de/subgraphs/mcp/claude.mdx index a5e33a30ed22..eac1b9e10c9c 100644 --- a/website/src/pages/de/subgraphs/mcp/claude.mdx +++ b/website/src/pages/de/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 549b706c24638369b1b1afb92c81c9fa4b8aff78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:03 -0400 Subject: [PATCH 1089/1709] New translations cline.mdx (German) --- website/src/pages/de/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/subgraphs/mcp/cline.mdx b/website/src/pages/de/subgraphs/mcp/cline.mdx index 58876001aa8f..803e5db99125 100644 --- a/website/src/pages/de/subgraphs/mcp/cline.mdx +++ b/website/src/pages/de/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 8ba26b3fe858b93877eb1ec88915911c529f71cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:05 -0400 Subject: [PATCH 1090/1709] New translations claude-mcp.mdx (Italian) --- website/src/pages/it/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/resources/claude-mcp.mdx b/website/src/pages/it/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/it/resources/claude-mcp.mdx +++ b/website/src/pages/it/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 71e4d8c80c88e416b91934e26d5200a1d1475d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:06 -0400 Subject: [PATCH 1091/1709] New translations claude.mdx (Italian) --- website/src/pages/it/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/subgraphs/mcp/claude.mdx b/website/src/pages/it/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/it/subgraphs/mcp/claude.mdx +++ b/website/src/pages/it/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 7a0a8a80c9254caffb2b35353f79fb90656ec359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:07 -0400 Subject: [PATCH 1092/1709] New translations cline.mdx (Italian) --- website/src/pages/it/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/subgraphs/mcp/cline.mdx b/website/src/pages/it/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/it/subgraphs/mcp/cline.mdx +++ b/website/src/pages/it/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From ae6cbabbf28e2ed0dfb60933d177f56fcca49d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:09 -0400 Subject: [PATCH 1093/1709] New translations claude-mcp.mdx (Japanese) --- website/src/pages/ja/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/resources/claude-mcp.mdx b/website/src/pages/ja/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/ja/resources/claude-mcp.mdx +++ b/website/src/pages/ja/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From cd5f9eb4ef9e0f56fb00cce016c8abc8ea7c40e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:10 -0400 Subject: [PATCH 1094/1709] New translations claude.mdx (Japanese) --- website/src/pages/ja/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/subgraphs/mcp/claude.mdx b/website/src/pages/ja/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/ja/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ja/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 24d250efc34ecb30d161d3d2e4bb25c317a00c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:12 -0400 Subject: [PATCH 1095/1709] New translations cline.mdx (Japanese) --- website/src/pages/ja/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/subgraphs/mcp/cline.mdx b/website/src/pages/ja/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/ja/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ja/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From eb6647eb7424bc6bdaa5072832d1ff44476cbe41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:13 -0400 Subject: [PATCH 1096/1709] New translations claude-mcp.mdx (Korean) --- website/src/pages/ko/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/resources/claude-mcp.mdx b/website/src/pages/ko/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/ko/resources/claude-mcp.mdx +++ b/website/src/pages/ko/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 9d7d345cf112d6844dec7c8b36d6825c271b5a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:14 -0400 Subject: [PATCH 1097/1709] New translations claude.mdx (Korean) --- website/src/pages/ko/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/subgraphs/mcp/claude.mdx b/website/src/pages/ko/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/ko/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ko/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From ba81874d0b683509233b454210255a1c7b404c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:15 -0400 Subject: [PATCH 1098/1709] New translations cline.mdx (Korean) --- website/src/pages/ko/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/subgraphs/mcp/cline.mdx b/website/src/pages/ko/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/ko/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ko/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From bd1aca8d5995029621d019788799c1841e4d7e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:17 -0400 Subject: [PATCH 1099/1709] New translations claude-mcp.mdx (Dutch) --- website/src/pages/nl/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/resources/claude-mcp.mdx b/website/src/pages/nl/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/nl/resources/claude-mcp.mdx +++ b/website/src/pages/nl/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 4268359ac7d5df9d6486c8cf05a7c28bd44e3b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:19 -0400 Subject: [PATCH 1100/1709] New translations claude.mdx (Dutch) --- website/src/pages/nl/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/subgraphs/mcp/claude.mdx b/website/src/pages/nl/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/nl/subgraphs/mcp/claude.mdx +++ b/website/src/pages/nl/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From f41080631c94117d858712eba8e1247310548279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:20 -0400 Subject: [PATCH 1101/1709] New translations cline.mdx (Dutch) --- website/src/pages/nl/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/subgraphs/mcp/cline.mdx b/website/src/pages/nl/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/nl/subgraphs/mcp/cline.mdx +++ b/website/src/pages/nl/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 4f78945e92ca2145d32db673ee9a3793f88991e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:21 -0400 Subject: [PATCH 1102/1709] New translations claude-mcp.mdx (Polish) --- website/src/pages/pl/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/resources/claude-mcp.mdx b/website/src/pages/pl/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/pl/resources/claude-mcp.mdx +++ b/website/src/pages/pl/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From c5f76924066d632bf9c3a4a832a50b3cf28eb805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:22 -0400 Subject: [PATCH 1103/1709] New translations claude.mdx (Polish) --- website/src/pages/pl/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/subgraphs/mcp/claude.mdx b/website/src/pages/pl/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/pl/subgraphs/mcp/claude.mdx +++ b/website/src/pages/pl/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 6c567381260950f4a2943b994324e3c8aa91ec6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:24 -0400 Subject: [PATCH 1104/1709] New translations cline.mdx (Polish) --- website/src/pages/pl/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/subgraphs/mcp/cline.mdx b/website/src/pages/pl/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/pl/subgraphs/mcp/cline.mdx +++ b/website/src/pages/pl/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From eb094b76f4d79f57791a358d9baa61f70782d89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:25 -0400 Subject: [PATCH 1105/1709] New translations claude-mcp.mdx (Portuguese) --- website/src/pages/pt/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/resources/claude-mcp.mdx b/website/src/pages/pt/resources/claude-mcp.mdx index a767b2c82056..a42b0486b193 100644 --- a/website/src/pages/pt/resources/claude-mcp.mdx +++ b/website/src/pages/pt/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 9f4c090e7e99d596cc1f0cafe2b7a043801bbe5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:27 -0400 Subject: [PATCH 1106/1709] New translations claude.mdx (Portuguese) --- website/src/pages/pt/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/subgraphs/mcp/claude.mdx b/website/src/pages/pt/subgraphs/mcp/claude.mdx index f06e7d2a79cd..dfb8894857ff 100644 --- a/website/src/pages/pt/subgraphs/mcp/claude.mdx +++ b/website/src/pages/pt/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From e6cbc4aa4f517333c973b76b3e65222a90af3723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:28 -0400 Subject: [PATCH 1107/1709] New translations cline.mdx (Portuguese) --- website/src/pages/pt/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/subgraphs/mcp/cline.mdx b/website/src/pages/pt/subgraphs/mcp/cline.mdx index c147a47025d1..3bfd9f38ff39 100644 --- a/website/src/pages/pt/subgraphs/mcp/cline.mdx +++ b/website/src/pages/pt/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 8bba704d68f129f88af44a2473ba5b1ab1998430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:30 -0400 Subject: [PATCH 1108/1709] New translations claude-mcp.mdx (Russian) --- website/src/pages/ru/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/resources/claude-mcp.mdx b/website/src/pages/ru/resources/claude-mcp.mdx index 1e2c8cbc5616..a0a194f22a79 100644 --- a/website/src/pages/ru/resources/claude-mcp.mdx +++ b/website/src/pages/ru/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From ec1882f731913491c2a2d97fcf77082e9eb8b05e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:31 -0400 Subject: [PATCH 1109/1709] New translations claude.mdx (Russian) --- website/src/pages/ru/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/subgraphs/mcp/claude.mdx b/website/src/pages/ru/subgraphs/mcp/claude.mdx index a3b8218dff06..03543ba7b4eb 100644 --- a/website/src/pages/ru/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ru/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 8611d3b9754f13bbbc5ffae4fe113fcf91c81222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:32 -0400 Subject: [PATCH 1110/1709] New translations cline.mdx (Russian) --- website/src/pages/ru/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/subgraphs/mcp/cline.mdx b/website/src/pages/ru/subgraphs/mcp/cline.mdx index 17a14a6c47ce..d152f083f425 100644 --- a/website/src/pages/ru/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ru/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 203a0d7bb24aa3dcdada9a4ab2727c468e46a2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:34 -0400 Subject: [PATCH 1111/1709] New translations claude-mcp.mdx (Swedish) --- website/src/pages/sv/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/resources/claude-mcp.mdx b/website/src/pages/sv/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/sv/resources/claude-mcp.mdx +++ b/website/src/pages/sv/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 3ef4b43f757afb2daeb0e486db07e59686f7fe2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:35 -0400 Subject: [PATCH 1112/1709] New translations claude.mdx (Swedish) --- website/src/pages/sv/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/subgraphs/mcp/claude.mdx b/website/src/pages/sv/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/sv/subgraphs/mcp/claude.mdx +++ b/website/src/pages/sv/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 31e36a8fe2e6cfacc258ed801d90a2cf61614e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:36 -0400 Subject: [PATCH 1113/1709] New translations cline.mdx (Swedish) --- website/src/pages/sv/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/subgraphs/mcp/cline.mdx b/website/src/pages/sv/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/sv/subgraphs/mcp/cline.mdx +++ b/website/src/pages/sv/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 17fe5ddcc909655d3a996ac4790d925b913d07f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:37 -0400 Subject: [PATCH 1114/1709] New translations claude-mcp.mdx (Turkish) --- website/src/pages/tr/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/resources/claude-mcp.mdx b/website/src/pages/tr/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/tr/resources/claude-mcp.mdx +++ b/website/src/pages/tr/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From bb158e01c76193c64ab02006d3d55b084c3fc0e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:38 -0400 Subject: [PATCH 1115/1709] New translations claude.mdx (Turkish) --- website/src/pages/tr/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/subgraphs/mcp/claude.mdx b/website/src/pages/tr/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/tr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/tr/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 66a54df48f173628ff6f88f2a15c5c626228ffd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:40 -0400 Subject: [PATCH 1116/1709] New translations cline.mdx (Turkish) --- website/src/pages/tr/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/subgraphs/mcp/cline.mdx b/website/src/pages/tr/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/tr/subgraphs/mcp/cline.mdx +++ b/website/src/pages/tr/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 5a3fa45f7218d4658154cd71578185d7d3a2e416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:41 -0400 Subject: [PATCH 1117/1709] New translations claude-mcp.mdx (Ukrainian) --- website/src/pages/uk/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/resources/claude-mcp.mdx b/website/src/pages/uk/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/uk/resources/claude-mcp.mdx +++ b/website/src/pages/uk/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 84873730e0a64e0c192879e76076d65ce4fad22b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:42 -0400 Subject: [PATCH 1118/1709] New translations claude.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/subgraphs/mcp/claude.mdx b/website/src/pages/uk/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/uk/subgraphs/mcp/claude.mdx +++ b/website/src/pages/uk/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 8b00116ccc23ed41202cb6676b84fddef924d54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:44 -0400 Subject: [PATCH 1119/1709] New translations cline.mdx (Ukrainian) --- website/src/pages/uk/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/subgraphs/mcp/cline.mdx b/website/src/pages/uk/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/uk/subgraphs/mcp/cline.mdx +++ b/website/src/pages/uk/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From c5e89123fe70ae5b2cee31d06b353dcd3465322e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:45 -0400 Subject: [PATCH 1120/1709] New translations claude-mcp.mdx (Chinese Simplified) --- website/src/pages/zh/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/resources/claude-mcp.mdx b/website/src/pages/zh/resources/claude-mcp.mdx index 486a7b0888d6..c101c1be2117 100644 --- a/website/src/pages/zh/resources/claude-mcp.mdx +++ b/website/src/pages/zh/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 48b54d5cdeda3414c8922ac0028ea3e05b1bd544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:46 -0400 Subject: [PATCH 1121/1709] New translations claude.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/subgraphs/mcp/claude.mdx b/website/src/pages/zh/subgraphs/mcp/claude.mdx index 383b48cb969d..40e93dd9b4a0 100644 --- a/website/src/pages/zh/subgraphs/mcp/claude.mdx +++ b/website/src/pages/zh/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## 故障排除 From 4c7e7ebf8ad56849086109f12d0cfce8992135d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:47 -0400 Subject: [PATCH 1122/1709] New translations cline.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/subgraphs/mcp/cline.mdx b/website/src/pages/zh/subgraphs/mcp/cline.mdx index 377366518bc7..7c55b41b3b94 100644 --- a/website/src/pages/zh/subgraphs/mcp/cline.mdx +++ b/website/src/pages/zh/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 819a53126270d6b8559475e9cced8d0551aaa809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:49 -0400 Subject: [PATCH 1123/1709] New translations claude-mcp.mdx (Urdu (Pakistan)) --- website/src/pages/ur/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/resources/claude-mcp.mdx b/website/src/pages/ur/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/ur/resources/claude-mcp.mdx +++ b/website/src/pages/ur/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From e2d9f6b6c8488817ca54d5676d11a012a45796b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:50 -0400 Subject: [PATCH 1124/1709] New translations claude.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/subgraphs/mcp/claude.mdx b/website/src/pages/ur/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/ur/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ur/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 9265f1c6847235e6513bdc7f06eae20dd1026544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:51 -0400 Subject: [PATCH 1125/1709] New translations cline.mdx (Urdu (Pakistan)) --- website/src/pages/ur/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/subgraphs/mcp/cline.mdx b/website/src/pages/ur/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/ur/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ur/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 61c4b83abc6968cb30cdec231028e89d563e96de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:53 -0400 Subject: [PATCH 1126/1709] New translations claude-mcp.mdx (Vietnamese) --- website/src/pages/vi/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/resources/claude-mcp.mdx b/website/src/pages/vi/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/vi/resources/claude-mcp.mdx +++ b/website/src/pages/vi/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 3b902fee78680ba23fb1cfa86352d7c95fb38eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:54 -0400 Subject: [PATCH 1127/1709] New translations claude.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/subgraphs/mcp/claude.mdx b/website/src/pages/vi/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/vi/subgraphs/mcp/claude.mdx +++ b/website/src/pages/vi/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From 5107714f95e1e371f9fcc3efe37d0101868637a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:55 -0400 Subject: [PATCH 1128/1709] New translations cline.mdx (Vietnamese) --- website/src/pages/vi/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/subgraphs/mcp/cline.mdx b/website/src/pages/vi/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/vi/subgraphs/mcp/cline.mdx +++ b/website/src/pages/vi/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 5290a0ae8308ebbe5e822dc8d2933778809b4e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:57 -0400 Subject: [PATCH 1129/1709] New translations claude-mcp.mdx (Marathi) --- website/src/pages/mr/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/resources/claude-mcp.mdx b/website/src/pages/mr/resources/claude-mcp.mdx index 365d23e1e207..5b55bbcbe0a4 100644 --- a/website/src/pages/mr/resources/claude-mcp.mdx +++ b/website/src/pages/mr/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From 2b2e76c47f7f0bb4da9785e0ba69bc625f23f6a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:58 -0400 Subject: [PATCH 1130/1709] New translations claude.mdx (Marathi) --- website/src/pages/mr/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/subgraphs/mcp/claude.mdx b/website/src/pages/mr/subgraphs/mcp/claude.mdx index cb023bed7bf0..8b61438d2ab7 100644 --- a/website/src/pages/mr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/mr/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From ec53b45ae75e51a46684e851e0455dce017db158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:32:59 -0400 Subject: [PATCH 1131/1709] New translations cline.mdx (Marathi) --- website/src/pages/mr/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/subgraphs/mcp/cline.mdx b/website/src/pages/mr/subgraphs/mcp/cline.mdx index 6714e445c0b2..156221d9a127 100644 --- a/website/src/pages/mr/subgraphs/mcp/cline.mdx +++ b/website/src/pages/mr/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 2a48d550811dad35160a1396515446dbc083cc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:33:01 -0400 Subject: [PATCH 1132/1709] New translations claude-mcp.mdx (Hindi) --- website/src/pages/hi/resources/claude-mcp.mdx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/resources/claude-mcp.mdx b/website/src/pages/hi/resources/claude-mcp.mdx index 8513aae562d0..d9220f7d4196 100644 --- a/website/src/pages/hi/resources/claude-mcp.mdx +++ b/website/src/pages/hi/resources/claude-mcp.mdx @@ -40,6 +40,13 @@ Replace the contents of the existing config file with: ```json { "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "ACCESS_TOKEN" + } + }, "subgraph": { "command": "npx", "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], @@ -69,7 +76,7 @@ After configuration: 1. Start a new conversation in Claude Desktop 2. Click on the context menu (top right) -3. Add "The Graph" as a resource by entering `graphql://subgraph` for Subgraph MCP +3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP > **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. From d133b88fe42775de40d2b2512ed2310569c93bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:33:02 -0400 Subject: [PATCH 1133/1709] New translations claude.mdx (Hindi) --- website/src/pages/hi/subgraphs/mcp/claude.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/subgraphs/mcp/claude.mdx b/website/src/pages/hi/subgraphs/mcp/claude.mdx index 884594ea143a..1c6a21c24d55 100644 --- a/website/src/pages/hi/subgraphs/mcp/claude.mdx +++ b/website/src/pages/hi/subgraphs/mcp/claude.mdx @@ -116,9 +116,9 @@ After configuring Claude Desktop: 1. Restart Claude Desktop 2. Start a new conversation 3. Click on the context menu (top right) -4. Add "The Graph" as a resource by adding `graphql://subgraph` to your chat context +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "The Graph" resource to your chat context for each conversation where you want to use it. +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. ## Troubleshooting From fa13ee9239f730f9cc4f0b5267a1066f0680a498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 23 May 2025 14:33:03 -0400 Subject: [PATCH 1134/1709] New translations cline.mdx (Hindi) --- website/src/pages/hi/subgraphs/mcp/cline.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/subgraphs/mcp/cline.mdx b/website/src/pages/hi/subgraphs/mcp/cline.mdx index 4e61e69c2437..01bd398a6b89 100644 --- a/website/src/pages/hi/subgraphs/mcp/cline.mdx +++ b/website/src/pages/hi/subgraphs/mcp/cline.mdx @@ -45,7 +45,7 @@ After configuring Cline: 1. Restart Cline 2. Start a new conversation 3. Enable the Subgraph MCP from the context menu -4. Add "The Graph" as a resource to your chat context +4. Add "Subgraph Server Instructions" as a resource to your chat context ## Available Tools and Usage From 8ed851860aaa68291663b551c0560989cdf0d555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:47 -0400 Subject: [PATCH 1135/1709] New translations best-practices.mdx (Romanian) --- .../ro/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ro/subgraphs/querying/best-practices.mdx b/website/src/pages/ro/subgraphs/querying/best-practices.mdx index ab02b27cbc03..372507f29bb9 100644 --- a/website/src/pages/ro/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ro/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From dfa137b2a53baff8356c8fcd33f5bb841da2422b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:49 -0400 Subject: [PATCH 1136/1709] New translations advanced.mdx (French) --- .../fr/subgraphs/developing/creating/advanced.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website/src/pages/fr/subgraphs/developing/creating/advanced.mdx b/website/src/pages/fr/subgraphs/developing/creating/advanced.mdx index 5992294de057..b64f4462d9d3 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/advanced.mdx +++ b/website/src/pages/fr/subgraphs/developing/creating/advanced.mdx @@ -8,11 +8,11 @@ Ajouter et mettre en œuvre des fonctionnalités avancées de subgraph pour amé A partir de la `specVersion` `0.0.4`, les fonctionnalités de Subgraph doivent être explicitement déclarées dans la section `features` au premier niveau du fichier manifest, en utilisant leur nom `camelCase`, comme listé dans le tableau ci-dessous : -| Fonctionnalité | Nom | -| --------------------------------------------------------- | ---------------- | -| [Erreurs non fatales](#non-fatal-errors) | `nonFatalErrors` | -| [Recherche plein texte](#defining-fulltext-search-fields) | `fullTextSearch` | -| [Greffage](#grafting-onto-existing-subgraphs) | `grafting` | +| Fonctionnalité | Nom | +| ----------------------------------------------------------- | ---------------- | +| [Erreurs non fatales](#non-fatal-errors) | `nonFatalErrors` | +| [Recherche plein texte](#defining-fulltext-search-fields) | `fullTextSearch` | +| [Greffage](#grafting-onto-existing-subgraphs) | `grafting` | Par exemple, si un subgraph utilise les fonctionnalités **Recherche plein texte** et **Erreurs non fatales**, le champ `features` dans le manifeste devrait être : From 9ab233584821138dbbf8b86695addb512fb42944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:50 -0400 Subject: [PATCH 1137/1709] New translations best-practices.mdx (French) --- .../fr/subgraphs/querying/best-practices.mdx | 196 +++++++++--------- 1 file changed, 103 insertions(+), 93 deletions(-) diff --git a/website/src/pages/fr/subgraphs/querying/best-practices.mdx b/website/src/pages/fr/subgraphs/querying/best-practices.mdx index 9b5bddd7d439..5c008cc2b427 100644 --- a/website/src/pages/fr/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/fr/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Bonnes pratiques d'interrogation --- -The Graph offre un moyen décentralisé d'interroger les données des blockchains. Ses données sont exposées par le biais d'une API GraphQL, ce qui facilite l'interrogation avec le langage GraphQL. - -Apprenez les règles essentielles du langage GraphQL et les meilleures pratiques pour optimiser votre subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Apprenez les règles essentielles du langage GraphQL et les meilleures pratiques ### Anatomie d'une requête GraphQL -Contrairement à l'API REST, une API GraphQL repose sur un schéma qui définit les requêtes qui peuvent être effectuées. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -Par exemple, une requête pour obtenir un jeton en utilisant la requête `token` ressemblera à ce qui suit : +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -qui retournera la réponse JSON prévisible suivante (\_en passant la bonne valeur de la variable `$id`): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ qui retournera la réponse JSON prévisible suivante (\_en passant la bonne vale } ``` -Les requêtes GraphQL utilisent le langage GraphQL, qui est défini dans [une spécification](https://spec.graphql.org/). - La requête `GetToken` ci-dessus est composée de plusieurs parties de langage (remplacées ci-dessous par des espaces réservés `[...]`) : ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Règles d'écriture des requêtes GraphQL +### Règles d'écriture des requêtes GraphQL -- Chaque `queryName` ne doit être utilisé qu'une seule fois par opération. -- Chaque `champ` ne doit être utilisé qu'une seule fois dans une sélection (nous ne pouvons pas interroger `id` deux fois sous `token`) -- Certains `champs` ou certaines requêtes (comme `tokens`) renvoient des types complexes qui nécessitent une sélection de sous-champs. Ne pas fournir de sélection quand cela est attendu (ou en fournir une quand cela n'est pas attendu - par exemple, sur `id`) lèvera une erreur. Pour connaître un type de champ, veuillez vous référer à [Graph Explorer] (/subgraphs/explorer/). -- Toute variable affectée à un argument doit correspondre à son type. -- Dans une liste de variables donnée, chacune d’elles doit être unique. -- Toutes les variables définies doivent être utilisées. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Remarque : le non-respect de ces règles entraînera une erreur de la part de The Graph API. +1. Chaque `queryName` ne doit être utilisé qu'une seule fois par opération. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Toute variable affectée à un argument doit correspondre à son type. +5. Variables must be uniquely defined and used. -Pour une liste complète des règles avec des exemples de code, consultez le [Guide des validations GraphQL](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Envoi d'une requête à une API GraphQL +### How to Send a Query to a GraphQL API -GraphQL est un langage et un ensemble de conventions qui se transportent sur HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -Cela signifie que vous pouvez interroger une API GraphQL en utilisant le standard `fetch` (nativement ou via `@whatwg-node/fetch` ou `isomorphic-fetch`). - -Cependant, comme mentionné dans ["Interrogation à partir d'une application"](/subgraphs/querying/from-an-application/), il est recommandé d'utiliser `graph-client`, qui supporte les caractéristiques uniques suivantes : +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Traitement des subgraphs multi-chaînes : Interrogation de plusieurs subgraphs en une seule requête - [Suivi automatique des blocs](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Pagination automatique] (https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Résultat entièrement typé -Voici comment interroger The Graph avec `graph-client` : +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -D'autres alternatives au client GraphQL sont abordées dans ["Requête à partir d'une application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Les meilleures pratiques -### Écrivez toujours des requêtes statiques +### 1. Always Write Static Queries -Une (mauvaise) pratique courante consiste à construire dynamiquement des chaînes de requête comme suit : +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -Bien que l'extrait ci-dessus produise une requête GraphQL valide, **il présente de nombreux inconvénients** : +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- cela rend **plus difficile la compréhension** de la requête dans son ensemble -- les développeurs sont **responsables de l'assainissement de l'interpolation de la chaîne de caractères** -- ne pas envoyer les valeurs des variables dans le cadre des paramètres de la requête **empêcher la mise en cache éventuelle côté serveur** -- il **empêche les outils d'analyser statiquement la requête** (ex : Linter, ou les outils de génération de types) +Instead, it's recommended to **always write queries as static strings**. -C'est pourquoi il est recommandé de toujours écrire les requêtes sous forme de chaînes de caractères statiques : +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Cela présente de **nombreux avantages** : +Static strings have several **key advantages**: -- **Facile à lire et à entretenir** les requêtes -- Le **serveur GraphQL s’occupe de la validation des variables** -- **Les variables peuvent être mises en cache** au niveau du serveur -- **Les requêtes peuvent être analysées statiquement par des outils** (plus d'informations à ce sujet dans les sections suivantes) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### Comment inclure des champs de manière conditionnelle dans des requêtes statiques +### 2. Include Fields Conditionally in Static Queries -Il se peut que vous souhaitiez inclure le champ `owner` uniquement pour une condition particulière. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -Pour cela, vous pouvez utiliser la directive `@include(if :...)` comme suit : +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note : La directive opposée est `@skip(if : ...)`. - -### Demandez ce que vous voulez - -GraphQL est devenu célèbre grâce à son slogan "Ask for what you want" (demandez ce que vous voulez). +### 3. Ask Only For What You Want -Pour cette raison, il n'existe aucun moyen, dans GraphQL, d'obtenir tous les champs disponibles sans avoir à les lister individuellement. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Lorsque vous interrogez les API GraphQL, pensez toujours à interroger uniquement les champs qui seront réellement utilisés. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Assurez-vous que les requêtes ne récupèrent que le nombre d'entités dont vous avez réellement besoin. Par défaut, les requêtes récupèrent 100 entités dans une collection, ce qui est généralement beaucoup plus que ce qui sera réellement utilisé, par exemple pour l'affichage à l'utilisateur. Cela s'applique non seulement aux collections de premier niveau d'une requête, mais plus encore aux collections imbriquées d'entités. Par exemple, dans la requête suivante : @@ -215,9 +212,9 @@ query listTokens { La réponse pourrait contenir 100 transactions pour chacun des 100 jetons. -Si l'application n'a besoin que de 10 transactions, la requête doit explicitement définir `first: 10` dans le champ transactions. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Utiliser une seule requête pour demander plusieurs enregistrements +### 4. Use a Single Query to Request Multiple Records Par défaut, les subgraphs ont une entité singulière pour un enregistrement. Pour plusieurs enregistrements, utilisez les entités plurielles et le filtre : `where: {id_in:[X,Y,Z]}` ou `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combiner plusieurs requêtes en une seule +### 5. Combine Multiple Queries in a Single Request Votre application peut nécessiter l'interrogation de plusieurs types de données, comme suit : @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -Bien que cette mise en œuvre soit tout à fait valable, elle nécessitera deux allers-retours avec l'API GraphQL. +While this implementation is valid, it will require two round trips with the GraphQL API. -Heureusement, il est également possible d'envoyer plusieurs requêtes dans la même requête GraphQL, comme suit : +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -Cette approche **améliore les performances globales** en réduisant le temps passé sur le réseau (vous évite un aller-retour vers l'API) et fournit une **mise en œuvre plus concise**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Tirer parti des fragments GraphQL +### 6. Leverage GraphQL Fragments Une fonctionnalité utile pour écrire des requêtes GraphQL est GraphQL Fragment. @@ -335,7 +332,7 @@ Ces champs répétés (`id`, `active`, `status`) posent de nombreux problèmes : - Les requêtes plus longues deviennent plus difficiles à lire. - Lorsque l'on utilise des outils qui génèrent des types TypeScript basés sur des requêtes (_plus d'informations à ce sujet dans la dernière section_), `newDelegate` et `oldDelegate` donneront lieu à deux interfaces inline distinctes. -Une version remaniée de la requête serait la suivante : +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -L'utilisation de GraphQL `fragment` améliorera la lisibilité (en particulier à grande échelle) et permettra une meilleure génération de types TypeScript. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. -Lorsque l'on utilise l'outil de génération de types, la requête ci-dessus génère un type `DelegateItemFragment` approprié (\_voir la dernière section "Outils"). +Lorsque l'on utilise l'outil de génération de types, la requête ci-dessus génère un type `DelegateItemFragment` approprié (_voir la dernière section "Outils"). -### Bonnes pratiques et erreurs à éviter avec les fragments GraphQL +## GraphQL Fragment Guidelines -### La base du fragment doit être un type +### Do's and Don'ts for Fragments -Un fragment ne peut pas être basé sur un type non applicable, en bref, **sur un type n'ayant pas de champs** : +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +L'exemple: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` est un **scalaire** (type natif "plain" ) qui ne peut pas être utilisé comme base d'un fragment. - -#### Comment diffuser un fragment - -Les fragments sont définis pour des types spécifiques et doivent être utilisés en conséquence dans les requêtes. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. L'exemple: @@ -388,7 +385,7 @@ query { bondEvents { id newDelegate { - ...VoteItem # Erreur ! `VoteItem` ne peut pas être étendu sur le type `Transcoder` + ...VoteItem # Error! `VoteItem` cannot be spread on `Transcoder` type } oldDelegate { ...VoteItem @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` et `oldDelegate` sont de type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -Il n'est pas possible de diffuser un fragment de type `Vote` ici. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Définir Fragment comme une unité commerciale atomique de données +--- -Les `Fragment` GraphQL doivent être définis en fonction de leur utilisation. +### How to Define `Fragment` as an Atomic Business Unit of Data -Pour la plupart des cas d'utilisation, la définition d'un fragment par type (dans le cas de l'utilisation répétée de champs ou de la génération de types) est suffisante. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -Voici une règle empirique pour l'utilisation des fragments : +Here is a rule of thumb for using fragments: -- Lorsque des champs de même type sont répétés dans une requête, ils sont regroupés dans un `Fragment`. -- Lorsque des champs similaires mais différents se répètent, créer plusieurs fragments, par exemple : +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +L'exemple: ```graphql # fragment de base (utilisé principalement pour les listes) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## Les outils essentiels +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Explorateurs Web GraphQL +### Setting up Workflow and IDE Tools -Itérer sur des requêtes en les exécutant dans votre application peut s'avérer fastidieux. Pour cette raison, n'hésitez pas à utiliser [Graph Explorer](https://thegraph.com/explorer) pour tester vos requêtes avant de les ajouter à votre application. Graph Explorer vous fournira un terrain de jeu GraphQL préconfiguré pour tester vos requêtes. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -Si vous recherchez un moyen plus souple de déboguer/tester vos requêtes, d'autres outils web similaires sont disponibles, tels que [Altair](https://altairgraphql.dev/) et [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### Linting GraphQL +1. Install GraphQL ESLint -Afin de respecter les meilleures pratiques et les règles syntaxiques mentionnées ci-dessus, il est fortement recommandé d'utiliser les outils de workflow et d'IDE suivants. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) vous aidera à rester au fait des meilleures pratiques GraphQL sans effort. +This will enforce essential rules such as: -[La configuration "opérations-recommandées"](https://the-guild.dev/graphql/eslint/docs/configs) permet d'appliquer des règles essentielles telles que: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type` : un champ est-il utilisé sur un type correct ? -- `@graphql-eslint/no-unused variables` : une variable donnée doit-elle rester inutilisée ? -- et plus ! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -Cela vous permettra de **récupérer les erreurs sans même tester les requêtes** sur le terrain de jeu ou les exécuter en production ! +#### Use IDE plugins -### Plugins IDE +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode et GraphQL** +1. VS Code -L'[extension GraphQL VSCode] (https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) est un excellent complément à votre workflow de développement : +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Mise en évidence des syntaxes - Suggestions d'auto-complétion @@ -474,11 +484,11 @@ L'[extension GraphQL VSCode] (https://marketplace.visualstudio.com/items?itemNam - Snippets - Aller à la définition des fragments et des types d'entrée -Si vous utilisez `graphql-eslint`, l'extension [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) est indispensable pour visualiser correctement les erreurs et les avertissements dans votre code. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij et GraphQL** +2. WebStorm/Intellij and GraphQL -Le [JS GraphQL plugin] (https://plugins.jetbrains.com/plugin/8097-graphql/) améliorera considérablement votre expérience lorsque vous travaillez avec GraphQL en fournissant : +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Mise en évidence des syntaxes - Suggestions d'auto-complétion From b9300841f28a9cba3d5210ba59ea309e9d52309c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:52 -0400 Subject: [PATCH 1138/1709] New translations best-practices.mdx (Spanish) --- .../es/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/es/subgraphs/querying/best-practices.mdx b/website/src/pages/es/subgraphs/querying/best-practices.mdx index eb9567990435..a5f468b8ee73 100644 --- a/website/src/pages/es/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/es/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Mejores Prácticas para Consultas --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -A diferencia de la API REST, una API GraphQL se basa en un esquema que define las consultas que se pueden realizar. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Cualquier variable asignada a un argumento debe coincidir con su tipo. -- En una lista dada de variables, cada una de ellas debe ser única. -- Deben utilizarse todas las variables definidas. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Cualquier variable asignada a un argumento debe coincidir con su tipo. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Envío de una consulta a una API GraphQL +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Resultado completamente tipificado -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Escribe siempre consultas estáticas +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Aprovechar los GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### Qué hacer y qué no hacer con los GraphQL Fragments +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Ejemplo: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Ejemplo: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Ejemplo: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Exploradores web GraphQL +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- ¡y mucho más! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### Plugins IDE +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 1442e5f2e9e700310d91b6c027db47c09cdeedd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:54 -0400 Subject: [PATCH 1139/1709] New translations best-practices.mdx (Arabic) --- .../ar/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ar/subgraphs/querying/best-practices.mdx b/website/src/pages/ar/subgraphs/querying/best-practices.mdx index f469ff02de9c..612e6792581d 100644 --- a/website/src/pages/ar/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ar/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: أفضل الممارسات للاستعلام --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -على عكس REST API ، فإن GraphQL API مبنية على مخطط يحدد الاستعلامات التي يمكن تنفيذها. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- يجب أن يكون أي متغير تم تعيينه لوسيط متطابقًا مع نوعه. -- في قائمة المتغيرات المعطاة ، يجب أن يكون كل واحد منها فريدًا. -- يجب استخدام جميع المتغيرات المحددة. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. يجب أن يكون أي متغير تم تعيينه لوسيط متطابقًا مع نوعه. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### إرسال استعلام إلى GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - نتيجة مكتوبة بالكامل -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### اكتب دائمًا استعلامات ثابتة +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### الاستفادة من أجزاء GraphQL +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### ما يجب فعله وما لا يجب فعله في GraphQL Fragment +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- و اكثر! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 7a088f6a525845a2693dac3b0e2dbe5531149a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:55 -0400 Subject: [PATCH 1140/1709] New translations advanced.mdx (Czech) --- website/src/pages/cs/subgraphs/developing/creating/advanced.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/subgraphs/developing/creating/advanced.mdx b/website/src/pages/cs/subgraphs/developing/creating/advanced.mdx index e8db267667c0..0ae33c1efe69 100644 --- a/website/src/pages/cs/subgraphs/developing/creating/advanced.mdx +++ b/website/src/pages/cs/subgraphs/developing/creating/advanced.mdx @@ -246,7 +246,7 @@ The CID of the file as a readable string can be accessed via the `dataSource` as const cid = dataSource.stringParam() ``` -Příklad +Příklad ```typescript import { json, Bytes, dataSource } from '@graphprotocol/graph-ts' From 295c24e7fa5ec5ddffd309fc93a91e439c24ca02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:57 -0400 Subject: [PATCH 1141/1709] New translations best-practices.mdx (Czech) --- .../cs/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/cs/subgraphs/querying/best-practices.mdx b/website/src/pages/cs/subgraphs/querying/best-practices.mdx index 038319488eda..167ccbac2e9c 100644 --- a/website/src/pages/cs/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/cs/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Osvědčené postupy dotazování --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Na rozdíl od rozhraní REST API je GraphQL API postaveno na schématu, které definuje, jaké dotazy lze provádět. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Každá proměnná přiřazená argumentu musí odpovídat jeho typu. -- V daném seznamu proměnných musí být každá z nich jedinečná. -- Musí být použity všechny definované proměnné. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Každá proměnná přiřazená argumentu musí odpovídat jeho typu. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Odeslání dotazu na GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Plně zadaný výsledekv -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Osvědčené postupy -### Vždy pište statické dotazy +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Při dotazování na GraphQL vždy myslete na to, abyste dotazovali pouze pole, která budou skutečně použita. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Využití fragmentů GraphQL +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### Co dělat a nedělat s fragmenty GraphQL +## GraphQL Fragment Guidelines -### Základem fragmentu musí být typ +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Příklad: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### Jak šířit fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Příklad: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Definice fragmentu jako atomické obchodní jednotky dat +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Příklad: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Weboví průzkumníci GraphQL +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- a další! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE zásuvné +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 6481da38d6c8e0164e1e7ae2205bb94fab412a30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:58 -0400 Subject: [PATCH 1142/1709] New translations advanced.mdx (German) --- .../developing/creating/advanced.mdx | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/website/src/pages/de/subgraphs/developing/creating/advanced.mdx b/website/src/pages/de/subgraphs/developing/creating/advanced.mdx index e1245dcae9a8..38b0aead992e 100644 --- a/website/src/pages/de/subgraphs/developing/creating/advanced.mdx +++ b/website/src/pages/de/subgraphs/developing/creating/advanced.mdx @@ -8,11 +8,11 @@ Fügen Sie fortgeschrittene Subgraph-Funktionen hinzu und implementieren Sie sie Ab `specVersion` `0.0.4` müssen Subgraph-Funktionen explizit im Abschnitt `features` auf der obersten Ebene der Manifestdatei unter Verwendung ihres `camelCase`-Namens deklariert werden, wie in der folgenden Tabelle aufgeführt: -| Funktion | Name | -| ------------------------------------------------- | ---------------- | -| [Non-fatal errors](#non-fatal-errors) | `nonFatalErrors` | -| [Volltextsuche](#defining-fulltext-search-fields) | "Volltextsuche" | -| [Grafting](#grafting-onto-existing-subgraphs) | `grafting` | +| Funktion | Name | +| ----------------------------------------------------- | ---------------- | +| [Non-fatal errors](#non-fatal-errors) | `nonFatalErrors` | +| [Volltextsuche](#defining-fulltext-search-fields) | "Volltextsuche" | +| [Grafting](#grafting-onto-existing-subgraphs) | `grafting` | Wenn ein Subgraph beispielsweise die Funktionen **Volltextsuche** und **Nicht fatale Fehler** verwendet, sollte das Feld „Features“ im Manifest lauten: @@ -173,17 +173,17 @@ Ursprüngliche kombinierte Einheit: ```graphql type Token @entity { - id: ID! - tokenID: BigInt! - tokenURI: String! - externalURL: String! - ipfsURI: String! - image: String! - name: String! - description: String! - type: String! - updatedAtTimestamp: BigInt - owner: User! + id: ID! + tokenID: BigInt! + tokenURI: String! + externalURL: String! + ipfsURI: String! + image: String! + name: String! + description: String! + type: String! + updatedAtTimestamp: BigInt + owner: User! } ``` @@ -191,20 +191,20 @@ Neu, geteilte Einheit: ```graphql type Token @entity { - id: ID! - tokenID: BigInt! - tokenURI: String! - ipfsURI: TokenMetadata - updatedAtTimestamp: BigInt - owner: String! + id: ID! + tokenID: BigInt! + tokenURI: String! + ipfsURI: TokenMetadata + updatedAtTimestamp: BigInt + owner: String! } type TokenMetadata @entity { - id: ID! - image: String! - externalURL: String! - name: String! - description: String! + id: ID! + image: String! + externalURL: String! + name: String! + description: String! } ``` @@ -528,7 +528,7 @@ subgraph.yaml„ unter Verwendung von “event.params ```yaml Aufrufe: - - ERC20DecimalsToken0: ERC20[event.params.token0].decimals() + - ERC20DecimalsToken0: ERC20[event.params.token0].decimals() ``` ### Grafting auf bestehende Subgraphen @@ -542,8 +542,8 @@ Ein Subgraph wird auf einen Basis-Subgraph gepfropft, wenn das Subgraph-Manifest ```yaml Beschreibung: ... graft: - base: Qm ... # Subgraph ID des Basis-Subgraphen - block: 7345624 # Blocknummer + base: Qm ... # Subgraph ID des Basis-Subgraphen + block: 7345624 # Blocknummer ``` Wenn ein Subgraph, dessen Manifest einen „graft“-Block enthält, bereitgestellt wird, kopiert Graph Node die Daten des ‚Basis‘-Subgraphen bis einschließlich des angegebenen „Blocks“ und fährt dann mit der Indizierung des neuen Subgraphen ab diesem Block fort. Der Basis-Subgraph muss auf der Ziel-Graph-Node-Instanz existieren und mindestens bis zum angegebenen Block indexiert sein. Aufgrund dieser Einschränkung sollte Grafting nur während der Entwicklung oder in Notfällen verwendet werden, um die Erstellung eines äquivalenten, nicht gepfropften Subgraphen zu beschleunigen. From 1d8911fbecadf41e07c2a44e4f24259300c2896a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:15:59 -0400 Subject: [PATCH 1143/1709] New translations best-practices.mdx (German) --- .../de/subgraphs/querying/best-practices.mdx | 205 +++++++++--------- 1 file changed, 106 insertions(+), 99 deletions(-) diff --git a/website/src/pages/de/subgraphs/querying/best-practices.mdx b/website/src/pages/de/subgraphs/querying/best-practices.mdx index 50053b27f889..f7f0f8979879 100644 --- a/website/src/pages/de/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/de/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Best Practices für Abfragen --- -The Graph bietet eine dezentrale Möglichkeit zur Abfrage von Daten aus Blockchains. Die Daten werden über eine GraphQL-API zugänglich gemacht, was die Abfrage mit der GraphQL-Sprache erleichtert. - -Lernen Sie die wesentlichen GraphQL-Sprachregeln und Best Practices, um Ihren Subgraph zu optimieren. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Lernen Sie die wesentlichen GraphQL-Sprachregeln und Best Practices, um Ihren Su ### Die Anatomie einer GraphQL-Abfrage -Im Gegensatz zur REST-API basiert eine GraphQL-API auf einem Schema, das definiert, welche Abfragen durchgeführt werden können. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -Eine Abfrage zum Abrufen eines Tokens mit der Abfrage `token` sieht zum Beispiel wie folgt aus: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -die die folgende vorhersehbare JSON-Antwort zurückgibt (\_bei Übergabe des richtigen Variablenwerts `$id`): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ die die folgende vorhersehbare JSON-Antwort zurückgibt (\_bei Übergabe des ric } ``` -GraphQL-Abfragen verwenden die GraphQL-Sprache, die nach [einer Spezifikation] (https://spec.graphql.org/) definiert ist. - Die obige `GetToken`-Abfrage besteht aus mehreren Sprachteilen (im Folgenden durch `[...]` Platzhalter ersetzt): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Regeln für das Schreiben von GraphQL-Abfragen +### Regeln für das Schreiben von GraphQL-Abfragen -- Jeder `queryName` darf nur einmal pro Vorgang verwendet werden. -- Jedes `field` darf nur einmal in einer Auswahl verwendet werden (wir können `id` nicht zweimal unter `token`abfragen) -- Einige `field`s oder Abfragen (wie `tokens`) geben komplexe Typen zurück, die eine Auswahl von Unterfeldern erfordern. Wird eine Auswahl nicht bereitgestellt, wenn sie erwartet wird (oder eine Auswahl bereitgestellt, wenn sie nicht erwartet wird - zum Beispiel bei `id`), wird ein Fehler ausgelöst. Um einen Feldtyp zu kennen, schauen Sie bitte im [Graph Explorer](/subgraphs/explorer/) nach. -- Jede Variable, die einem Argument zugewiesen wird, muss ihrem Typ entsprechen. -- In einer gegebenen Liste von Variablen muss jede von ihnen eindeutig sein. -- Alle definierten Variablen müssen verwendet werden. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Hinweis: Die Nichtbeachtung dieser Regeln führt zu einer Fehlermeldung von The Graph API. +1. Jeder `queryName` darf nur einmal pro Vorgang verwendet werden. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Jede Variable, die einem Argument zugewiesen wird, muss ihrem Typ entsprechen. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Senden einer Abfrage an eine GraphQL API +### How to Send a Query to a GraphQL API -GraphQL ist eine Sprache und ein Satz von Konventionen, die über HTTP transportiert werden. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -Das bedeutet, dass Sie eine GraphQL-API mit dem Standard `fetch` abfragen können (nativ oder über `@whatwg-node/fetch` oder `isomorphic-fetch`). - -Wie in [„Abfragen von einer Anwendung“](/subgraphs/querying/from-an-application/) erwähnt, wird jedoch empfohlen, den `graph-client` zu verwenden, der die folgenden einzigartigen Funktionen unterstützt: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Kettenübergreifende Behandlung von Subgraphen: Abfragen von mehreren Subgraphen in einer einzigen Abfrage - [Automatische Blockverfolgung](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatische Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Vollständig typisiertes Ergebnis -So wird The Graph mit `graph-client` abgefragt: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -93,22 +89,22 @@ const variables = { id: '1' } async function main() { const result = await execute(query, variables) - // `result` ist vollständig typisiert! - console.log(result) + // `result` ist vollständig typisiert! + console.log(result) } main() ``` -Weitere GraphQL-Client-Alternativen werden in [„Abfragen von einer Anwendung“](/subgraphs/querying/from-an-application/) behandelt. +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Bewährte Praktiken -### Schreiben Sie immer statische Abfragen +### 1. Always Write Static Queries -Eine gängige (schlechte) Praxis ist es, Abfragezeichenfolgen dynamisch wie folgt zu erstellen: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -122,14 +118,16 @@ query GetToken { ` ``` -Auch wenn das obige Snippet eine gültige GraphQL-Abfrage erzeugt, **hat es viele Nachteile**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- es macht es **schwieriger**, die Abfrage als Ganzes zu verstehen -- Die Entwickler sind **für die sichere Bereinigung der String-Interpolation verantwortlich**. -- die Werte der Variablen nicht als Teil der Anforderungsparameter zu senden **eine mögliche Zwischenspeicherung auf der Server-Seite zu verhindern** -- es **verhindert, dass Werkzeuge die Abfrage statisch analysieren** (z. B. Linter oder Werkzeuge zur Typgenerierung) +Instead, it's recommended to **always write queries as static strings**. -Aus diesem Grund ist es empfehlenswert, Abfragen immer als statische Strings zu schreiben: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -151,18 +149,21 @@ const result = await execute(query, { }) ``` -Dies bringt **viele Vorteile**: +Static strings have several **key advantages**: -- **Einfach zu lesende und zu pflegende** Abfragen -- Der GraphQL **Server kümmert sich um die Bereinigung von Variablen** -- **Variablen können auf Server-Ebene zwischengespeichert werden**. -- **Abfragen können von Tools statisch analysiert werden** (mehr dazu in den folgenden Abschnitten) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### Wie man Felder bedingt in statische Abfragen einbezieht +### 2. Include Fields Conditionally in Static Queries -Möglicherweise möchten Sie das Feld `owner` nur unter einer bestimmten Bedingung einbeziehen. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -Dazu können Sie die Richtlinie `@include(if:...)` wie folgt nutzen: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -185,15 +186,11 @@ const result = await execute(query, { }) ``` -> Anmerkung: Die gegenteilige Direktive ist `@skip(if: ...)`. - -### Verlangen Sie, was Sie wollen - -GraphQL wurde durch den Slogan „Frag nach dem, was du willst“ bekannt. +### 3. Ask Only For What You Want -Aus diesem Grund gibt es in GraphQL keine Möglichkeit, alle verfügbaren Felder zu erhalten, ohne sie einzeln auflisten zu müssen. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Denken Sie bei der Abfrage von GraphQL-APIs immer daran, nur die Felder abzufragen, die tatsächlich verwendet werden. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Stellen Sie sicher, dass Abfragen nur so viele Entitäten abrufen, wie Sie tatsächlich benötigen. Standardmäßig rufen Abfragen 100 Entitäten in einer Sammlung ab, was in der Regel viel mehr ist, als tatsächlich verwendet wird, z. B. für die Anzeige für den Benutzer. Dies gilt nicht nur für die Top-Level-Sammlungen in einer Abfrage, sondern vor allem auch für verschachtelte Sammlungen von Entitäten. Zum Beispiel in der folgenden Abfrage: @@ -203,8 +200,7 @@ query listTokens { tokens { # wird bis zu 100 Tokens id - Transaktionen - abrufen { + Transaktionen abrufen { # wird bis zu 100 Transaktionen abrufen id } @@ -214,9 +210,9 @@ query listTokens { Die Antwort könnte 100 Transaktionen für jedes der 100 Token enthalten. -Wenn die Anwendung nur 10 Transaktionen benötigt, sollte die Abfrage explizit `first: 10` für das Feld „transactions“ festlegen. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Verwenden Sie eine einzige Abfrage, um mehrere Datensätze abzufragen +### 4. Use a Single Query to Request Multiple Records Standardmäßig haben Subgraphen eine singuläre Entität für einen Datensatz. Für mehrere Datensätze verwenden Sie die Plural-Entitäten und den Filter: `where: {id_in:[X,Y,Z]}` oder `where: {Volumen_gt:100000}` @@ -248,7 +244,7 @@ query ManyRecords { } ``` -### Mehrere Abfragen in einer einzigen Anfrage kombinieren +### 5. Combine Multiple Queries in a Single Request Für Ihre Anwendung kann es erforderlich sein, mehrere Datentypen wie folgt abzufragen: @@ -280,9 +276,9 @@ const [tokens, counters] = Promise.all( ) ``` -Diese Implementierung ist zwar durchaus sinnvoll, erfordert aber zwei Umläufe mit der GraphQL-API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Glücklicherweise ist es auch möglich, mehrere Abfragen in der gleichen GraphQL-Anfrage wie folgt zu senden: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -302,9 +298,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -Dieser Ansatz **verbessert die Gesamtleistung**, indem er die im Netz verbrachte Zeit reduziert (erspart Ihnen einen Hin- und Rückweg zur API) und bietet eine **präzisere Implementierung**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Nutzung von GraphQL-Fragmenten +### 6. Leverage GraphQL Fragments Eine hilfreiche Funktion zum Schreiben von GraphQL-Abfragen ist GraphQL Fragment. @@ -333,7 +329,7 @@ Solche wiederholten Felder (`id`, `active`, `status`) bringen viele Probleme mit - Umfangreichere Abfragen werden schwieriger zu lesen. - Bei der Verwendung von Tools, die TypeScript-Typen auf Basis von Abfragen generieren (_mehr dazu im letzten Abschnitt_), führen `newDelegate` und `oldDelegate` zu zwei unterschiedlichen Inline-Schnittstellen. -Eine überarbeitete Version der Abfrage würde wie folgt aussehen: +An optimized version of the query would be the following: ```graphql query { @@ -357,15 +353,18 @@ fragment DelegateItem auf Transcoder { } ``` -Die Verwendung von GraphQL `fragment` verbessert die Lesbarkeit (insbesondere bei Skalierung) und führt zu einer besseren TypeScript-Typengenerierung. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. -Wenn Sie das Tool zur Generierung von Typen verwenden, wird die obige Abfrage einen geeigneten Typ `DelegateItemFragment` erzeugen (\_siehe letzter Abschnitt „Tools“). +Wenn Sie das Tool zur Generierung von Typen verwenden, wird die obige Abfrage einen geeigneten Typ `DelegateItemFragment` erzeugen (_siehe letzter Abschnitt „Tools“). -### GraphQL-Fragmente: Was man tun und lassen sollte +## GraphQL Fragment Guidelines -### Die Fragmentbasis muss ein Typ sein +### Do's and Don'ts for Fragments -Ein Fragment kann nicht auf einem nicht anwendbaren Typ basieren, kurz gesagt, **auf einem Typ, der keine Felder hat**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Beispiel: ```graphql fragment MyFragment on BigInt { @@ -373,11 +372,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` ist ein **Skalar** (nativer “einfacher" Typ), der nicht als Basis für ein Fragment verwendet werden kann. - -#### Wie man ein Fragment verbreitet - -Fragmente sind für bestimmte Typen definiert und sollten entsprechend in Abfragen verwendet werden. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Beispiel: @@ -386,9 +382,7 @@ query { bondEvents { id newDelegate { - ...VoteItem # Fehler! `VoteItem` kann nicht auf `Transcoder` Typ - verteilt - werden + ...VoteItem # Error! `VoteItem` cannot be spread on `Transcoder` type } oldDelegate { ...VoteItem @@ -402,20 +396,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` und `oldDelegate` sind vom Typ `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -Es ist nicht möglich, ein Fragment des Typs `Vote` hier zu verbreiten. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Definition eines Fragments als atomare Geschäftseinheit von Daten +--- -GraphQL `Fragment`s müssen entsprechend ihrer Verwendung definiert werden. +### How to Define `Fragment` as an Atomic Business Unit of Data -Für die meisten Anwendungsfälle reicht es aus, ein Fragment pro Typ zu definieren (im Falle der Verwendung wiederholter Felder oder der Generierung von Typen). +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -Hier ist eine Faustregel für die Verwendung von Fragmenten: +Here is a rule of thumb for using fragments: -- Wenn Felder desselben Typs in einer Abfrage wiederholt werden, gruppieren Sie sie in einem `Fragment`. -- Wenn sich ähnliche, aber unterschiedliche Felder wiederholen, erstellen Sie z. B. mehrere Fragmente: +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +Beispiel: ```graphql # Basisfragment (meist im Listing verwendet) @@ -438,35 +435,45 @@ fragment VoteWithPoll on Vote { --- -## Die wichtigsten Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Webbasierte GraphQL-Explorer +### Setting up Workflow and IDE Tools -Das Iterieren von Abfragen, indem Sie sie in Ihrer Anwendung ausführen, kann mühsam sein. Zögern Sie deshalb nicht, den [Graph Explorer] (https://thegraph.com/explorer) zu verwenden, um Ihre Abfragen zu testen, bevor Sie sie Ihrer Anwendung hinzufügen. Der Graph Explorer bietet Ihnen eine vorkonfigurierte GraphQL-Spielwiese zum Testen Ihrer Abfragen. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -Wenn Sie nach einer flexibleren Methode zum Debuggen/Testen Ihrer Abfragen suchen, gibt es ähnliche webbasierte Tools wie [Altair] (https://altairgraphql.dev/) und [GraphiQL] (https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL-Linting +1. Install GraphQL ESLint -Um die oben genannten Best Practices und syntaktischen Regeln einzuhalten, wird die Verwendung der folgenden Workflow- und IDE-Tools dringend empfohlen. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint] (https://the-guild.dev/graphql/eslint/docs/getting-started) hilft Ihnen dabei, mit null Aufwand auf dem neuesten Stand der GraphQL Best Practices zu bleiben. +This will enforce essential rules such as: -[Die „operations-recommended“](https://the-guild.dev/graphql/eslint/docs/configs) Konfiguration setzt wichtige Regeln wie z.B.: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: wird ein Feld auf einen richtigen Typ verwendet? -- `@graphql-eslint/no-unused variables`: Soll eine bestimmte Variable unbenutzt bleiben? -- und mehr! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -So können Sie **Fehler aufspüren, ohne Abfragen** auf dem Playground zu testen oder sie in der Produktion auszuführen! +#### Use IDE plugins -### IDE-Plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode und GraphQL** +1. VS Code -Die [GraphQL VSCode-Erweiterung] (https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) ist eine hervorragende Ergänzung zu Ihrem Entwicklungs-Workflow zu bekommen: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntaxhervorhebung - Autovervollständigungsvorschläge @@ -474,11 +481,11 @@ Die [GraphQL VSCode-Erweiterung] (https://marketplace.visualstudio.com/items?ite - Snippets - Zur Definition von Fragmenten und Eingabetypen -Wenn Sie `graphql-eslint` verwenden, ist die [ESLint VSCode-Erweiterung] (https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) ein Muss, um Fehler und Warnungen in Ihrem Code korrekt zu visualisieren. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij und GraphQL** +2. WebStorm/Intellij and GraphQL -Das [JS GraphQL Plugin] (https://plugins.jetbrains.com/plugin/8097-graphql/) wird Ihre Erfahrung bei der Arbeit mit GraphQL erheblich verbessern, indem es Folgendes bietet: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntaxhervorhebung - Autovervollständigungsvorschläge From 49be59414d5b201d2246a5f296a2bb103be45335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:01 -0400 Subject: [PATCH 1144/1709] New translations best-practices.mdx (Italian) --- .../it/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/it/subgraphs/querying/best-practices.mdx b/website/src/pages/it/subgraphs/querying/best-practices.mdx index d4bb8b226105..387fe858e2d1 100644 --- a/website/src/pages/it/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/it/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -A differenza del REST API, un GraphQL API si basa su uno schema che definisce le query che possono essere eseguite. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Qualsiasi variabile assegnata a un argomento deve corrispondere al suo tipo. -- In un determinato elenco di variabili, ciascuna di esse deve essere unica. -- Tutte le variabili definite devono essere utilizzate. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Qualsiasi variabile assegnata a un argomento deve corrispondere al suo tipo. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Invio di una query a un API GraphQL +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Risultato completamente tipizzato -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Scrivere sempre query statiche +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Quando si interrogano le GraphQL API, si deve sempre pensare di effettuare query di solo i campi che verranno effettivamente utilizzati. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Sfruttare i frammenti GraphQL +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### I frammenti GraphQL da fare e da non fare +## GraphQL Fragment Guidelines -### La base del frammento deve essere un tipo +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### Come diffondere un frammento - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Definire il frammento come unità aziendale atomica di dati +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Esploratori web GraphQL +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### Linting di GraphQL +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- e altro ancora! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### Plugin IDE +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From d71929b01774fb0eb4c5fd9a27b6beaa25ad12e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:03 -0400 Subject: [PATCH 1145/1709] New translations best-practices.mdx (Japanese) --- .../ja/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ja/subgraphs/querying/best-practices.mdx b/website/src/pages/ja/subgraphs/querying/best-practices.mdx index bd25c5d2fea6..9285942ffbda 100644 --- a/website/src/pages/ja/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ja/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: クエリのベストプラクティス --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -REST APIとは異なり、GraphQL APIは実行可能なクエリを定義するSchemaをベースに構築されています。 +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- 引数に代入される変数は、その型と一致しなければなりません。 -- 与えられた変数のリストにおいて、各変数は一意でなければなりません。 -- 定義された変数はすべて使用する必要があります。 +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. 引数に代入される変数は、その型と一致しなければなりません。 +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### GraphQL APIへのクエリの送信 +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - 完全なタイプ付け結果 -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## ベストプラクティス -### 常に静的なクエリを記述 +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- GraphQL APIをクエリする際には、実際に使用するフィールドのみをクエリするように常に考えてください。 +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -302,9 +299,9 @@ query GetTokensandCounters { ` ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### GraphQLフラグメントの活用 +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -333,7 +330,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -357,15 +354,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQLフラグメントの注意点 +## GraphQL Fragment Guidelines -### フラグメントベースは型である必要があります +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +例: ```graphql fragment MyFragment on BigInt { @@ -373,11 +373,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### フラグメントを拡散する方法 - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. 例: @@ -400,20 +397,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### フラグメントをデータのアトミックなビジネス単位として定義する +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +例: ```graphql # base fragment (mostly used in listing) @@ -436,35 +436,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL ウェブベースのエクスプローラ +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- ともっと +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -472,11 +482,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From ddce26486d57e22833c6975cf18585d025af7f58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:05 -0400 Subject: [PATCH 1146/1709] New translations best-practices.mdx (Korean) --- .../ko/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ko/subgraphs/querying/best-practices.mdx b/website/src/pages/ko/subgraphs/querying/best-practices.mdx index ab02b27cbc03..372507f29bb9 100644 --- a/website/src/pages/ko/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ko/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 196f4538c27512cfcd10c2c7f93cbf68190a89fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:07 -0400 Subject: [PATCH 1147/1709] New translations best-practices.mdx (Dutch) --- .../nl/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/nl/subgraphs/querying/best-practices.mdx b/website/src/pages/nl/subgraphs/querying/best-practices.mdx index ab02b27cbc03..372507f29bb9 100644 --- a/website/src/pages/nl/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/nl/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 5214b4d4efd8afc550e3c08c90393f9f037196f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:09 -0400 Subject: [PATCH 1148/1709] New translations best-practices.mdx (Polish) --- .../pl/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/pl/subgraphs/querying/best-practices.mdx b/website/src/pages/pl/subgraphs/querying/best-practices.mdx index ab02b27cbc03..372507f29bb9 100644 --- a/website/src/pages/pl/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/pl/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 4b3222c7cacc8557ad6e121def554b74398377de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:11 -0400 Subject: [PATCH 1149/1709] New translations best-practices.mdx (Portuguese) --- .../pt/subgraphs/querying/best-practices.mdx | 192 +++++++++--------- 1 file changed, 101 insertions(+), 91 deletions(-) diff --git a/website/src/pages/pt/subgraphs/querying/best-practices.mdx b/website/src/pages/pt/subgraphs/querying/best-practices.mdx index 7bcdb1f0dfbe..1899d603d908 100644 --- a/website/src/pages/pt/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/pt/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Etiqueta de Query --- -O The Graph fornece uma maneira descentralizada de buscar dados de blockchains (queries). Os dados são expostos por uma API da GraphQL, o que facilita queries com a linguagem GraphQL. - -Aprenda as regras linguísticas essenciais da GraphQL e as melhores práticas para otimizar o seu subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Aprenda as regras linguísticas essenciais da GraphQL e as melhores práticas pa ### A Anatomia de um Query em GraphQL -Ao contrário da REST API, uma API GraphQL é construída em cima de um Schema que define quais queries podem ser realizados. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -Por exemplo, um query para retornar um token através do query `token` ficará assim: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -...assim retornando a seguinte resposta previsível em JSON (_ao passar o valor variável $id apropriado_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ query GetToken($id: ID!) { } ``` -Queries em GraphQL usam a linguagem GraphQL, definida sobre [uma especificação](https://spec.graphql.org/). - O query `GetToken` acima é composto de várias partes da linguagem (substituído abaixo com `[...]` temporários): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Regras para Escrever Queries em GraphQL +### Regras para Escrever Queries em GraphQL -- Cada `queryName` só pode ser usado uma vez por operação. -- Cada `field` deve ser usado apenas uma vez numa seleção (não podemos solicitar a `id` duas vezes sob o `token`) -- Alguns `field`s ou queries (como `tokens`) retornam tipos complexos que exigem uma seleção de sub-campo. Caso uma seleção não seja fornecida quando esperada (ou fornecida quando não é esperada — por exemplo, em `id`), aparecerá um erro. Para conhecer um tipo de campo, consulte o [Graph Explorer](/subgraphs/explorer/). -- Qualquer variável apontada a um argumento deve corresponder ao seu tipo. -- Em uma lista dada de variáveis, cada uma delas deve ser única. -- Todas as variáveis definidas devem ser usadas. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Não seguir as regras acima causará um erro da API do The Graph. +1. Cada `queryName` só pode ser usado uma vez por operação. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Qualquer variável apontada a um argumento deve corresponder ao seu tipo. +5. Variables must be uniquely defined and used. -Para uma lista completa de regras com exemplos de código, veja o [guia de Validações da GraphQL](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Como enviar um query a uma API GraphQL +### How to Send a Query to a GraphQL API -GraphQL é uma linguagem e um conjunto de convenções transportadas através do HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -Ou seja, dá para fazer um query numa API GraphQL com o `fetch` normal (nativamente ou via `@whatwg-node/fetch` ou `isomorphic-fetch`). - -Porém, conforme mencionado em ["Como Fazer Queries de Um Aplicativo"](/subgraphs/querying/from-an-application/), recomendamos usar o `graph-client`, que apoia as seguintes funções únicas: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Gestão de Subgraph Entre Chains: Queries de múltiplos subgraphs numa única consulta - [Rastreamento Automático de Blocos](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Paginação Automática](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Resultado totalmente digitado -Aqui está como fazer queries para o The Graph com o `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -Para mais alternativas de clientes para GraphQL, veja ["Como Fazer Queries de Um Aplicativo"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Boas práticas -### Sempre escreva consultas estáticas +### 1. Always Write Static Queries -É (um erro) comum construir strings de query dinamicamente, como no exemplo a seguir: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -Enquanto o trecho acima produz um query válido na GraphQL, **isto traz muitas desvantagens**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- deixa o query **mais difícil de entender** -- os programadores são **responsáveis por higienizar a interpolação de string com segurança** -- não enviar os valores das variáveis como parte dos parâmetros de pedido **impede um possível caching no lado do servidor** -- isto **impede as ferramentas de analisar o query estaticamente** (por ex. Linter ou ferramentas de geração de tipos) +Instead, it's recommended to **always write queries as static strings**. -Por isto, é recomendado sempre escrever queries como strings estáticas: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Isto traz **muitas vantagens**: +Static strings have several **key advantages**: -- Queries **fáceis de ler e manter** -- O servidor GraphQL **cuida da higienização de variáveis** -- **Variáveis podem ser guardadas em cache** no nível do servidor -- **Queries podem ser analisados estaticamente por ferramentas** (mais sobre isto nas secções seguintes) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### Como incluir campos condicionalmente em queries estáticos +### 2. Include Fields Conditionally in Static Queries -Talvez queira incluir o campo `owner` apenas com uma condição particular. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -Para isto, use a diretiva `@include(if:...)` a seguir: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Observação: a diretiva oposta é `@skip(if: ...)`. - -### Pergunte pelo que queres - -A GraphQL ficou famosa por sua frase de efeito "pergunte pelo que queres". +### 3. Ask Only For What You Want -Por isto, no GraphQL, não há como obter todos os campos disponíveis sem ter que listá-los individualmente. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Ao consultar APIs GraphQL, sempre considere fazer query apenas dos campos que serão usados. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Tenha certeza que os queries só retornarão o máximo necessário de entidades. Por natureza, os queries retirarão 100 entidades em uma coleção, muito mais do que realmente será usado; por ex., para fins de amostra ao usuário. Isto serve não só para coleções de alto nível em um query, mas também — especialmente — para coleções aninhadas de entidades. Por exemplo, no query seguinte: @@ -215,9 +212,9 @@ query listTokens { A resposta pode conter 100 transações para cada um dos 100 tokens. -Se o aplicativo só precisa de 10 transações, o query deve configurar explicitamente `first: 10` no campo de transações. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use uma única query para pedir vários registros +### 4. Use a Single Query to Request Multiple Records Por padrão, subgraphs têm uma entidade singular para um registo. Para múltiplos registos, use as entidades plurais e o filtro: `where: {id_in:[X,Y,Z]}` ou `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine múltiplas queries em um único pedido +### 5. Combine Multiple Queries in a Single Request O seu aplicativo pode exigir queries de múltiplos tipos de dados, como a seguir: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -Enquanto esta implementação é totalmente válida, ela exigirá duas rondas totais com a API da GraphQL. +While this implementation is valid, it will require two round trips with the GraphQL API. -Felizmente, também vale enviar múltiplos queries no mesmo pedido à GraphQL, como a seguir: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -Este método **melhorará o desempenho em geral** ao reduzir o tempo gasto na rede (porque poupa uma viagem ao redor da API) e fornecerá **implementações mais concisas**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Como Aproveitar Fragmentos GraphQL +### 6. Leverage GraphQL Fragments O GraphQL Fragment é uma ferramenta útil para a escrita de queries em GraphQL. @@ -335,7 +332,7 @@ Estes campos repetidos (`id`, `active`, `status`) trazem muitos problemas: - Queries mais extensos ficam difíceis de ler. - Ao usar ferramentas que geram tipos TypeScript baseados em queries (_mais na última secção_), `newDelegate` e `oldDelegate` retornarão duas interfaces distintas em inline. -Fatorizado novamente, o query ficaria assim: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Usar o `fragment` ("fragmento") da GraphQL melhorará a legibilidade (especialmente em escala) e também melhorará a geração de tipos TypeScript. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. Ao usar a ferramenta de geração de tipos, o query acima gerará um tipo `DelegateItemFragment` apropriado (_veja a última secção "Ferramentas"_). -### O que fazer e o que não fazer em Fragments GraphQL +## GraphQL Fragment Guidelines -### A base do fragment deve ser um tipo +### Do's and Don'ts for Fragments -Um Fragment não pode ser baseado num tipo não aplicável; ou seja, **um tipo sem campos**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Exemplo: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -O `BigInt` é um **escalar** (tipo "plano" nativo) que não pode ser usado como a base de um fragmento. - -#### Como espalhar um Fragment - -Fragmentos são definidos em tipos específicos e devem ser usados de acordo nos queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Exemplo: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` e `oldDelegate` são do tipo `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -Não é possível espalhar um fragmento do tipo `Vote` aqui. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Defina o Fragment como uma unidade de negócios atômica de dados +--- -`Fragment`s da GraphQL devem ser definidos com base no seu uso. +### How to Define `Fragment` as an Atomic Business Unit of Data -Para a maioria dos casos de uso, definir um fragmento por tipo (no caso do uso repetido de campos ou geração de tipos) já é o suficiente. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -Aqui estão algumas regras básicas para o uso de Fragmentos: +Here is a rule of thumb for using fragments: -- Quando campos do mesmo tipo se repetem em um query, agrupe-os em um `Fragment`. -- Quando campos parecidos (mas não idênticos) se repetem, crie múltiplos fragmentos, por exemplo: +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +Exemplo: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## Ferramentas Essenciais +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Exploradores do GraphQL baseados em web +### Setting up Workflow and IDE Tools -Pode ser até chato executar queries no seu aplicativo para iterar sobre elas. Por isto, não hesite em usar o [Graph Explorer](https://thegraph.com/explorer) para testar os seus queries antes de adicioná-los. O Graph Explorer fornecerá um ambiente de testes GraphQL pré-configurado para testar os seus queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -Se procura uma maneira mais flexível de depurar/testar seus queries, há outras ferramentas semelhantes baseadas na web, como [Altair](https://altairgraphql.dev/) e [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -Para acompanhar as melhores práticas e regras sintáticas explicadas acima, vale muito a pena utilizar as ferramentas IDE e de fluxo de trabalho a seguir. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**ESLint — GraphQL** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -O [ESLint da GraphQL](https://the-guild.dev/graphql/eslint/docs/getting-started) te ajudará a acompanhar as melhores práticas da GraphQL sem sofrimento. +This will enforce essential rules such as: -[Organize a configuração "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) para executar regras essenciais como: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: um campo está num tipo apropriado? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- e mais! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -Isto permitirá-lhe **detetar erros mesmo sem testar queries** no playground ou mesmo executá-los na produção! +#### Use IDE plugins -### Plugins IDE +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode e GraphQL** +1. VS Code -A [extensão VSCode da GraphQL](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) é uma adição excelente ao seu fluxo de programação que permite: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Destaque de sintaxe - Sugestões de preenchimento automático @@ -474,11 +484,11 @@ A [extensão VSCode da GraphQL](https://marketplace.visualstudio.com/items?itemN - Snippets (blocos de código reutilizáveis) - Definições de fragmentos e tipos de entrada -Se utilizar o `graphql-eslint`, a [extensão VSCode para o ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) é essencial para visualizar corretamente erros e avisos embutidos no seu código. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij e GraphQL** +2. WebStorm/Intellij and GraphQL -O [plugin JavaScript para a GraphQL](https://plugins.jetbrains.com/plugin/8097-graphql/) melhorará muito a sua experiência com a GraphQL com: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Destaque de sintaxe - Sugestões de preenchimento automático From 8eb6646a9b19b4ec6310cbb987c2cdf0a3b5410e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:13 -0400 Subject: [PATCH 1150/1709] New translations best-practices.mdx (Russian) --- .../ru/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ru/subgraphs/querying/best-practices.mdx b/website/src/pages/ru/subgraphs/querying/best-practices.mdx index d0189ac234ee..2690ac5a78cb 100644 --- a/website/src/pages/ru/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ru/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Лучшие практики -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Пример: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Пример: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Пример: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 4a54df0374e84e8af52d037164ad36690c049db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:15 -0400 Subject: [PATCH 1151/1709] New translations best-practices.mdx (Swedish) --- .../sv/subgraphs/querying/best-practices.mdx | 216 +++++++++--------- 1 file changed, 113 insertions(+), 103 deletions(-) diff --git a/website/src/pages/sv/subgraphs/querying/best-practices.mdx b/website/src/pages/sv/subgraphs/querying/best-practices.mdx index 0ab033858acd..46058e3100ee 100644 --- a/website/src/pages/sv/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/sv/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Bästa praxis för förfrågningar --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Till skillnad från REST API bygger ett GraphQL API på ett schema som definierar vilka frågor som kan utföras. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,36 +48,34 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Varje variabel som tilldelas ett argument måste matcha dess typ. -- I en given lista med variabler måste var och en av dem vara unik. -- Alla definierade variabler måste användas. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Varje variabel som tilldelas ett argument måste matcha dess typ. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Att skicka en fråga till ett GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fullt typad resultat -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx -import { execute } from '../.graphclient' +import { execute } from "../.graphclient"; const query = ` query GetToken($id: ID!) { @@ -88,55 +84,57 @@ query GetToken($id: ID!) { owner } } -` +`; const variables = { id: '1' } async function main() { - const result = await execute(query, variables) + const result = await execute(query, variables); // `result` är fullständigt typad! - console.log(result) + console.log(result); } main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Bästa praxis -### Skriv alltid statiska frågor +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx -const id = params.id -const fields = ['id', 'owner'] +const id = params.id; +const fields = ["id", "owner"]; const query = ` query GetToken { token(id: ${id}) { - ${fields.join('\n')} + ${fields.join("\n")} } } -` +`; // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -For this reason, it is recommended to always write queries as static strings: +Instead, it's recommended to **always write queries as static strings**. + +Example of static string: ```tsx -import { execute } from 'your-favorite-graphql-client' +import { execute } from "your-favorite-graphql-client"; -const id = params.id +const id = params.id; const query = ` query GetToken($id: ID!) { token(id: $id) { @@ -144,7 +142,7 @@ query GetToken($id: ID!) { owner } } -` +`; const result = await execute(query, { variables: { @@ -153,23 +151,26 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: + +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +### 2. Include Fields Conditionally in Static Queries -### How to include fields conditionally in static queries +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -You might want to include the `owner` field only on a particular condition. +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. -For this, you can leverage the `@include(if:...)` directive as follows: +Example using `owner` field with `@include(if:...)` directive: ```tsx -import { execute } from 'your-favorite-graphql-client' +import { execute } from "your-favorite-graphql-client"; -const id = params.id +const id = params.id; const query = ` query GetToken($id: ID!, $includeOwner: Boolean) { token(id: $id) { @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. +### 3. Ask Only For What You Want -### Ask for what you want +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -GraphQL became famous for its "Ask for what you want" tagline. - -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. - -- När du frågar GraphQL API:er, tänk alltid på att endast fråga efter de fält som faktiskt kommer att användas. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Dra nytta av GraphQL-fragment +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### Dos and Don'ts för GraphQL Fragment +## GraphQL Fragment Guidelines -### Fragmentbas måste vara en typ +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Exempel: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### Hur man sprider ett fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Exempel: @@ -388,7 +385,7 @@ query { bondEvents { id newDelegate { - ...VoteItem # Fel! `VoteItem` kan inte spridas på `Transcoder` typ + ...VoteItem # Error! `VoteItem` cannot be spread on `Transcoder` type } oldDelegate { ...VoteItem @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Definiera fragment som en atomisk affärsenhet för data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Exempel: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Webbaserade GraphQL-upptäckare +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- och mer! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE-tillägg +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From dce28ecff888b83cc9b3c49eab3f3c340e018e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:17 -0400 Subject: [PATCH 1152/1709] New translations best-practices.mdx (Turkish) --- .../tr/subgraphs/querying/best-practices.mdx | 194 +++++++++--------- 1 file changed, 102 insertions(+), 92 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/best-practices.mdx b/website/src/pages/tr/subgraphs/querying/best-practices.mdx index a67a07de6d2c..f6ab3eb57118 100644 --- a/website/src/pages/tr/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/tr/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Sorgulama - Örnek Uygulamalar --- -The Graph, blokzincirlerinden veri sorgulamak için merkeziyetsiz bir yöntem sağlar. Verileri bir GraphQL API'si aracılığıyla sunulur ve bu da GraphQL diliyle sorgulamayı kolaylaştırır. - -Subgraph'inizi optimize etmek için gerekli temel GraphQL dili kurallarını ve örnek uygulamaları öğrenin. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Subgraph'inizi optimize etmek için gerekli temel GraphQL dili kurallarını ve ### Bir GraphQL Sorgusunun Anatomisi -REST API'den farklı olarak, bir GraphQL API'si, hangi sorguların gerçekleştirilebileceğini tanımlayan bir Şema üzerine kuruludur. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -Örneğin, `token` sorgusunu kullanarak bir token almak için yapılacak sorgu aşağıdaki gibi olacaktır: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -ve bu sorgu (doğru `$id` değişkeni geçirildiğinde) aşağıdaki öngörülebilir JSON yanıtını döndürecektir: +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ ve bu sorgu (doğru `$id` değişkeni geçirildiğinde) aşağıdaki öngörüle } ``` -GraphQL sorguları, [bir spesifikasyon](https://spec.graphql.org/) temelinde tanımlanmış olan GraphQL dilini kullanır. - Yukarıdaki `GetToken` sorgusu, birden fazla dil bileşeninden oluşur (aşağıda `[...]` yer tutucularıyla gösterilmiştir): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## GraphQL Sorgusu Yazmanın Kuralları +### GraphQL Sorgusu Yazmanın Kuralları -- Her bir `queryName`, işlem başına yalnızca bir kez kullanılmalıdır. -- Her bir `field`, bir seçim içinde yalnızca bir kez kullanılmalıdır (örneğin, `token` altında `id` alanını iki kez sorgulayamayız) -- Bazı `field`'lar veya sorgular (örneğin `tokens`), alt alan seçimi gerektiren karmaşık türler döndürür. Beklendiğinde alt alan seçimi yapmamak (ya da beklenmediğinde böyle bir seçim yapmak, örneğin `id` üzerinde) bir hata oluşturur. Bir alanın türünü öğrenmek için lütfen [Graph Gezgini](/subgraphs/explorer/) sayfasına bakın. -- Bir argümana atanan herhangi bir değişken, onun türüyle eşleşmelidir. -- Belirli bir değişken listesinde, her bir değişken özgün olmalıdır. -- Tanımlanan tüm değişkenler kullanılmalıdır. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Not: Bu kurallara uyulmaması, The Graph API'sinin hata vermesi ile sonuçlanacaktır. +1. Her bir `queryName`, işlem başına yalnızca bir kez kullanılmalıdır. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Bir argümana atanan herhangi bir değişken, onun türüyle eşleşmelidir. +5. Variables must be uniquely defined and used. -Kod örnekleriyle birlikte tam kurallar listesi için [GraphQL Doğrulamaları rehberine](/resources/migration-guides/graphql-validations-migration-guide/) göz atın. +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Bir GraphQL API'sine sorgu göndermek +### How to Send a Query to a GraphQL API -GraphQL, HTTP üzerinden taşınan bir dil ve kurallar bütünüdür. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -Bu, (yerel olarak veya `@whatwg-node/fetch` ya da `isomorphic-fetch` aracılığıyla) standart `fetch` kullanarak bir GraphQL API'sini sorgulayabileceğiniz anlamına gelir. - -Ancak, ["Bir Uygulamadan Sorgulama"](/subgraphs/querying/from-an-application/) bölümünde belirtildiği gibi, aşağıdaki benzersiz özellikleri destekleyen `graph-client`ın kullanılması önerilir: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Zincirler arası Subgraph İşleme: Tek bir sorguda birden fazla Subgraph'ten veri sorgulama - [Otomatik Blok Takibi](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Otomatik Sayfalama](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Tamamen yazılmış sonuç -`graph-client` aracılığıyla The Graph sorgusu nasıl yapılır: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -Daha fazla GraphQL istemcisi alternatifi, ["Bir Uygulamadan Sorgulama"](/subgraphs/querying/from-an-application/) bölümünde ele alınmıştır. +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## En İyi Uygulamalar -### Her zaman statik sorgular yazın +### 1. Always Write Static Queries -Yaygın (ve kötü) bir uygulama, sorgu dizelerini aşağıdaki gibi dinamik olarak oluşturmaktır: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Sorguyu çalıştır... ``` -Yukarıdaki kod parçası geçerli bir GraphQL sorgusu üretse de, **birçok dezavantaja sahiptir**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- sorguyu bir bütün olarak anlamayı **zorlaştırır** -- geliştiriciler, **dize enterpolasyonunun güvenliğini sağlamakla sorumludur** -- değişken değerlerinin istek parametreleriyle gönderilmemesi **sunucu tarafındaki önbellekleme olasılığını ortadan kaldırır** -- bu, **araçların sorguyu statik olarak analiz etmesini engeller** (örneğin: Linter veya tür üretim araçları) +Instead, it's recommended to **always write queries as static strings**. -Bu nedenle, sorguları her zaman statik dizeler olarak yazmanız önerilir: +Example of static string: ```tsx import { execute } from 'dilediğiniz-graphql-istemcisi' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Bunu yapmak **birçok avantaj** sağlar: +Static strings have several **key advantages**: -- **Okuması ve bakımı kolay** sorgular -- GraphQL sunucusu **değişkenlerin güvenli hale getirilmesini üstlenir** -- Değişkenler sunucu düzeyinde **önbelleğe alınabilir** -- **Sorgular araçlar tarafından statik olarak analiz edilebilir** (detaylar sonraki bölümlerde açıklanacaktır) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### Statik sorgularda alanlar nasıl koşullu olarak dahil edilir +### 2. Include Fields Conditionally in Static Queries -`owner` alanını yalnızca belirli bir koşulla dahil etmek isteyebilirsiniz. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -Bunun için, `@include(if:...)` yönergesinden aşağıdaki gibi yararlanabilirsiniz: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'dilediğiniz-graphql-istemcisi' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Not: Bunun tersi yönerge `@skip(if: ...)` şeklindedir. - -### İstediğini sor - -GraphQL, “İstediğini sor” sloganıyla ün kazanmıştı. +### 3. Ask Only For What You Want -Bu nedenle, GraphQL'de tüm kullanılabilir alanları tek tek listelemeden almanın bir yolu yoktur. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- GraphQL API'leri sorgularken, her zaman sadece gerçekten kullanılacak alanları sorgulamayı düşünmelisiniz. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Sorguların yalnızca gerçekten ihtiyaç duyduğunuz kadar varlık getirdiğinden emin olun. Varsayılan olarak, sorgular bir koleksiyondan 100 varlık getirir. Bu miktar genellikle gerekenden, örneğin kullanıcıya gösterilecek olandan, çok daha fazladır. Bu durum yalnızca sorgulardaki en üst düzey koleksiyonlar için değil, özellikle iç içe varlık koleksiyonları için de geçerlidir. Örneğin, aşağıdaki sorguda: @@ -215,9 +212,9 @@ query listTokens { Yanıt, 100 token için 100'er işlem içerebilir. -Uygulama yalnızca 10 işleme ihtiyaç duyuyorsa, sorguda transactions (işlemler) alanına açıkça `first: 10` değeri verilmelidir. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Birden fazla kaydı istemek için tek bir sorgu kullanın +### 4. Use a Single Query to Request Multiple Records Varsayılan olarak, Subgraph'ler tek bir kayıt için tekil bir varlık sunar. Birden fazla kayıt almak için çoğul varlıkları ve filtrelemeyi kullanın: `where: {id_in:[X,Y,Z]}` veya `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Birden fazla sorguyu tek bir istekte birleştirin +### 5. Combine Multiple Queries in a Single Request Uygulamanız buradaki gibi birden fazla veri türünü sorgulamanızı gerektirebilir: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -Bu uygulama tamamen geçerli olsa da, GraphQL API'si ile iki kez veri alışverişi yapılmasını gerektirir. +While this implementation is valid, it will require two round trips with the GraphQL API. -Neyse ki, aynı GraphQL isteği içinde birden fazla sorgu göndermek de aşağıdaki gibi geçerlidir: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "dilediğiniz-graphql-istemcisi" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -Bu yaklaşım, ağ üzerinde harcanan süreyi azaltarak **genel performansı artırır** (API'ye yapılan bir gidiş-dönüşü ortadan kaldırır) ve **daha sade bir uygulama** sunar. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### GraphQL Parçalarını (Fragment) Kullanın +### 6. Leverage GraphQL Fragments GraphQL sorguları yazarken faydalı bir özellik de GraphQL Fragment'tir. @@ -335,7 +332,7 @@ Bu tür tekrarlanan alanlar (`id`, `active`, `status`) birçok sorunu beraberind - Daha kapsamlı sorguların okunması zorlaşır. - Sorgulara dayanarak TypeScript türleri üreten araçlar kullanıldığında (_ilgili detaylar için son bölüme bakınız_), `newDelegate` ve `oldDelegate` iki ayrı satır içi arayüz (inline interface) olarak tanımlanır. -Sorgunun yeniden düzenlenmiş hali aşağıdaki gibi olacaktır: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -GraphQL `fragment` kullanmak, okunabilirliği artırır (özellikle büyük sorgularda) ve daha iyi TypeScript türleri üretilmesini sağlar. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. Tür üretim aracını kullanırken, yukarıdaki sorgu doğru bir `DelegateItemFragment` türü (_sondaki "Araçlar" bölümüne bakabilirsiniz_) oluşturacaktır. -### GraphQL Fragment kullanırken yapılması ve kaçınılması gerekenler +## GraphQL Fragment Guidelines -### Fragment tabanı bir tip olmalıdır +### Do's and Don'ts for Fragments -Bir Fragment, geçerli olmayan bir tür üzerinde tanımlanamaz. Kısacası, **alanları olmayan bir tür** üzerinde kullanılamaz: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Örnek: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt`, bir **skaler** (yerel "basit" tür) olduğu için bir fragment'in temeli olarak kullanılamaz. - -#### Fragment Nasıl Yayılır - -Fragment'ler belirli türler üzerinde tanımlanırlar ve sorgularda buna uygun şekilde kullanılmalılardır. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Örnek: @@ -388,7 +385,7 @@ query { bondEvents { id newDelegate { - ...VoteItem # Hata! `VoteItem` fragment'i `Transcoder` türü üzerinde kullanılamaz + ...VoteItem # Error! `VoteItem` cannot be spread on `Transcoder` type } oldDelegate { ...VoteItem @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` ve `oldDelegate`, `Transcoder` türündendir. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -Burada `Vote` türünde bir fragment kullanılamaz. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Fragment'ı atomik bir veri iş birimi olarak tanımlayın +--- -GraphQL'de bir `Fragment`, kullanım amacına göre tanımlanmalıdır. +### How to Define `Fragment` as an Atomic Business Unit of Data -Çoğu kullanım senaryosunda, her tür için bir fragment tanımlamak (özellikle tekrarlanan alan kullanımı veya tür üretimi durumlarında) yeterlidir. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -İşte fragment kullanımı için temel bir kural: +Here is a rule of thumb for using fragments: -- Aynı türdeki alanlar bir sorguda tekrar ediyorsa, bunları bir `Fragment` içinde gruplayın. -- Benzer ancak farklı alanlar tekrar ediyorsa, birden fazla "fragment" oluşturun. Örneğin: +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +Örnek: ```graphql # temel fragment (genellikle listeleme işlemlerinde kullanılır) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## Temel Araçlar +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### Web tabanlı GraphQL gezginleri +### Setting up Workflow and IDE Tools -Sorgularınızı uygulamanızda çalıştırarak denemek zahmetli olabilir. Bu nedenle, sorgularınızı uygulamaya eklemeden önce test etmek için [Graph Gezgini](https://thegraph.com/explorer)ni kullanmaktan çekinmeyin. Graph Gezgini, sorgularınızı test etmeniz için önceden yapılandırılmış bir GraphQL playground'u sunar. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -Sorgularınızda hata ayıklamak/sorgularınızı test etmek için daha esnek bir yol arıyorsanız, [Altair](https://altairgraphql.dev/) ve [GraphiQL](https://graphiql-online.com/graphiql) gibi benzer web tabanlı araçlar da mevcuttur. +#### GraphQL ESLint -### GraphQL'de Linting +1. Install GraphQL ESLint -Yukarıda belirtilen örnek uygulamalar ve sözdizim kurallarına uyum sağlamak için aşağıdaki iş akışı ve IDE (Entegre Geliştirme Ortamı) araçlarını kullanmanız şiddetle tavsiye edilir. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started), GraphQL örnek uygulamalarına zahmetsizce uymanıza yardımcı olur. +This will enforce essential rules such as: -["operations-recommended" yapılandırmasını kurmak](https://the-guild.dev/graphql/eslint/docs/configs), aşağıdakiler gibi temel kuralları zorunlu kılar: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: alan doğru tür üzerinde mi kullanılmış? -- `@graphql-eslint/no-unused-variables`: verilen bir değişken kullanılmadan mı bırakılmış? -- ve daha fazlası! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -Bu sayede, sorguları playground’da test etmeye ya da üretim ortamında çalıştırmaya gerek kalmadan **hataları önceden yakalayabilirsiniz**! +#### Use IDE plugins -### IDE eklentileri +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode ve GraphQL** +1. VS Code -[GraphQL VSCode uzantısı](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql), geliştirme sürecinize aşağıdakileri sağlamak için mükemmel bir eklentidir: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Sözdizimi vurgulama - Otomatik tamamlama önerileri @@ -474,11 +484,11 @@ Bu sayede, sorguları playground’da test etmeye ya da üretim ortamında çal - Kod parçacıkları (snippets) - Fragment'ler ve girdi türleri için tanıma gitme özelliği -`graphql-eslint` kullanıyorsanız, [ESLint VSCode uzantısı](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) kodunuzda hataları ve uyarıları satır içi şekilde doğru bir biçimde görüntülemek için mutlaka edinilmesi gereken bir araçtır. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij ve GraphQL** +2. WebStorm/Intellij and GraphQL -[JS GraphQL eklentisi](https://plugins.jetbrains.com/plugin/8097-graphql/), GraphQL ile çalışırken deneyiminizi aşağıdakileri sağlayarak önemli ölçüde iyileştirir: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Sözdizimi vurgulama - Otomatik tamamlama önerileri From 6d74834a1e77df8b68bf2d3780958f5e870abff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:19 -0400 Subject: [PATCH 1153/1709] New translations best-practices.mdx (Ukrainian) --- .../uk/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/uk/subgraphs/querying/best-practices.mdx b/website/src/pages/uk/subgraphs/querying/best-practices.mdx index a905e77e8adb..bdcb3bb58dce 100644 --- a/website/src/pages/uk/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/uk/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Найкращі практики виконання запитів --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -На відміну від REST API, GraphQL API побудований на основі Schema, яка визначає, які запити можуть бути виконані. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Будь-яка змінна, що присвоюється параметру, повинна відповідати його типу. -- У заданому списку змінних кожна з них має бути унікальною. -- Всі задані змінні повинні бути використаними. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Будь-яка змінна, що присвоюється параметру, повинна відповідати його типу. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Відправлення запиту до GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Повністю введений результат -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Найкращі практики -### Завжди пишіть статичні запити +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- Запитуючи API GraphQL, завжди запитуйте тільки ті поля, які дійсно будуть використовуватися. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Використання фрагментів GraphQL +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### Фрагмент GraphQL, що можна і що не можна робити +## GraphQL Fragment Guidelines -### База фрагменту повинна бути типом +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### Як розповсюдити Фрагмент - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Визначте фрагмент як атомну бізнес-одиницю даних +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- та більше! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### Плагіни IDE +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 86d24ce68e45c36713ff334dc7271f4a357c4fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:21 -0400 Subject: [PATCH 1154/1709] New translations advanced.mdx (Chinese Simplified) --- .../subgraphs/developing/creating/advanced.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/src/pages/zh/subgraphs/developing/creating/advanced.mdx b/website/src/pages/zh/subgraphs/developing/creating/advanced.mdx index e279b181ffb2..b421663ccc22 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/advanced.mdx +++ b/website/src/pages/zh/subgraphs/developing/creating/advanced.mdx @@ -6,13 +6,13 @@ title: 高级子图功能 添加并实现高级子图功能,以增强子图的构建。 -从 `specVersion ``0.0.4` 开始,子图特征必须使用它们的 `camelCase` 名称,在清单文件顶层的 `features` 部分中显式声明,如下表所列: +从 ```specVersion ``0.0.4``` 开始,子图特征必须使用它们的 `camelCase` 名称,在清单文件顶层的 `features` 部分中显式声明,如下表所列: -| 功能 | 名字 | -| -------------------------------------------- | ---------------- | -| [非致命错误](#non-fatal-errors) | `nonFatalErrors` | -| [全文搜索](#defining-fulltext-search-fields) | `fullTextSearch` | -| [嫁接](#grafting-onto-existing-subgraphs) | `grafting` | +| 功能 | 名字 | +| ----------------------------------------------- | ---------------- | +| [非致命错误](#non-fatal-errors) | `nonFatalErrors` | +| [全文搜索](#defining-fulltext-search-fields) | `fullTextSearch` | +| [嫁接](#grafting-onto-existing-subgraphs) | `grafting` | 例如,如果子图使用 **Full-Text Search** 和 **Non-fatal Errors** 功能,则清单中的 `features` 字段应为: @@ -343,7 +343,7 @@ export function handleTransfer(event: TransferEvent): void { 在创建文件数据源时,您可以使用[DataSource上下文](/subgraphs/developing/creating/graph-ts/api/#entity-and-datasourcecontext)传递额外的信息,这些信息将可供文件数据源处理程序使用。 -如果您有多次刷新的实体,请使用 IPFS 一的基于文件的实体。实体 ID,并使用基于链的实体中的派生字段引用它们。 +如果您有多次刷新的实体,请使用 IPFS 一的基于文件的实体。实体 ID,并使用基于链的实体中的派生字段引用它们。 > 我们正在努力改进上述建议,因此查询只返回“最新”版本。 @@ -535,7 +535,7 @@ calls: > **注意:**不建议在最初升级到The Graph网络时使用嫁接。了解更多信息[此处](/subgraphs/cookbook/grafting/#important-note-on-grafting-when-upgrading-to-the-network)。 -首次部署子图时,它会在相应链的启动区块(或每个数据源定义的 `startBlock` 处)开始索引事件。在某些情况下,可以使用现有子图已经索引的数据并在更晚的区块上开始索引。 这种索引模式称为*Grafting*。 例如,嫁接在开发过程中非常有用,可以快速克服映射中的简单错误,或者在现有子图失败后暂时恢复工作。 +首次部署子图时,它会在相应链的启动区块(或每个数据源定义的 `startBlock` 处)开始索引事件。在某些情况下,可以使用现有子图已经索引的数据并在更晚的区块上开始索引。 这种索引模式称为_Grafting_。 例如,嫁接在开发过程中非常有用,可以快速克服映射中的简单错误,或者在现有子图失败后暂时恢复工作。 当 `subgraph.yaml` 中的子图清单在顶层包含 `graft` 区块时,子图被嫁接到基础子图: From 6533eaf8098ea6b0b7b9fe3da96ef401936c708b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:22 -0400 Subject: [PATCH 1155/1709] New translations best-practices.mdx (Chinese Simplified) --- .../zh/subgraphs/querying/best-practices.mdx | 192 +++++++++--------- 1 file changed, 101 insertions(+), 91 deletions(-) diff --git a/website/src/pages/zh/subgraphs/querying/best-practices.mdx b/website/src/pages/zh/subgraphs/querying/best-practices.mdx index b0a4e0d93912..783a8bb93a52 100644 --- a/website/src/pages/zh/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/zh/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: 查询最佳实践 --- -Graph提供了一种去中心化的方式来查询区块链中的数据。它的数据是通过GraphQL API公开的,这使得使用GraphQL语言进行查询更加容易。 - -学习基本的 GraphQL 语言规则和最佳做法,以优化您的子图。 +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Graph提供了一种去中心化的方式来查询区块链中的数据。它的 ### GraphQL查询的剖析 -与REST API不同,GraphQL API构建在定义可以执行哪些查询的模式之上。 +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -例如,使用`token`查询获取代币如下所示: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -它将返回以下可预测的 JSON 响应(_当传递适当的 $id 变量值时_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ query GetToken($id: ID!) { } ``` -GraphQL 查询使用基于[规范](https://spec.graphql.org/)定义的 GraphQL 语言。 - 上述`GetToken`查询由多语言部分组成(用`[...]`占位符替换): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## 写入 GraphQL 查询规则 +### 写入 GraphQL 查询规则 -- 每个操作只能使用一次`queryName`。 -- 每个`字段`必须只能在选择中使用一次 (我们不能在 `token` 下查询`id` 两次)。 -- 有些`字段`或查询(如`tokens`)返回了需要选择子字段的复杂类型。 预期时不提供选择(或在不预期时提供选择――例如在`id`上――会引起错误。 要知道一个字段类型,请参阅[Graph Explorer](/subgraphs/explorer/)。 -- 分配给参数的任何变量都必须匹配其类型。 -- 在给定的变量列表中,每个变量必须是唯一的。 -- 必须使用所有已定义的变量。 +> Important: Failing to follow these rules will result in an error from The Graph API. -> 注意:如果不遵循这些规则,将导致从 The Graph API中发生错误。 +1. 每个操作只能使用一次`queryName`。 +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. 分配给参数的任何变量都必须匹配其类型。 +5. Variables must be uniquely defined and used. -有关包含代码示例的完整规则列表,请查看[GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)。 +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### 向 GraphQL API 发送查询 +### How to Send a Query to a GraphQL API -GraphQL 是一种通过 HTTP 传输的语言和一组协议。 +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -这意味着您可以使用标准的 `fetch` (nomatily or through `@whatwg-node/fetch` 或 `isomorphic-fetch`)查询一个 GraphQL API。 - -然而,正如[“查询申请”](/subgraphs/querying/from-an-application/)中提到的那样,建议使用 `graph-client` ,支持以下独特功能: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - 跨链子图处理: 在一个查询中从多个子图进行查询 - [自动区块跟踪](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [自动分页](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - 完全类型化的结果 -以下是如何使用 `Graph-client` 查询The Graph: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -更多GraphQL客户端替代方案在[“从应用程序查询”](/subgraphs/querying/from-an-application/)中介绍。 +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## 最佳实践 -### 始终编写静态查询 +### 1. Always Write Static Queries -一个常见的(不好的) 实践是动态构建查询字符串,如下所示: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -虽然上面的代码片段产生了一个有效的 GraphQL 查询,但**它有许多缺点** : +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- 它使得**更难理解** 整个查询 -- 开发者**负责安全清理字符串内插值** -- 不将变量的值作为请求参数的一部分发送以**防止服务器侧可能缓存** -- 它**阻止工具静态分析查询** (例如: Linter, 或类型代工具) +Instead, it's recommended to **always write queries as static strings**. -因此,建议始终将查询写为静态字符串: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -这样做会带有**许多优点**: +Static strings have several **key advantages**: -- **易读和维护** 查询 -- GraphQL **服务器处理变量净化** -- **变量可以缓存到 **服务器级别 -- **查询可以通过工具进行静态分析** (在以下章节中更多关于此问题) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### 如何在静态查询中有条件地包含字段 +### 2. Include Fields Conditionally in Static Queries -您可能只想在特定条件下包含 '所有者' 字段。 +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -为此,你可以将`@include(if:...)`的指令应用如下: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> 注意: 相反的指令是 `@skip(if: ...)` 。 - -### 问你所想 - -GraphQL以其“问你所想”的口号而闻名。 +### 3. Ask Only For What You Want -因此,在GraphQL中,不单独列出所有可用字段,就无法获取所有可用字段。 +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- 在查询GraphQL API时,请始终考虑只查询实际使用的字段。 +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - 请确保查询仅获取您实际需要的更多实体。 默认情况下,查询将会在集合中获取100个实体,这通常比实际使用的要多得多,如用于显示用户。这不仅适用于查询中的顶层集合,更适用于实体嵌套集合。 例如,在以下查询中: @@ -215,9 +212,9 @@ query listTokens { 该响应可以包含每100个代币交易中的100个交易。 -如果应用程序只需要10笔交易,查询应在交易字段中明确设置 `first: 10`。 +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### 使用单个查询请求多个记录 +### 4. Use a Single Query to Request Multiple Records 默认情况下,子图表有一个单数实体用于一个记录。对于多个记录,请使用复数实体和过滤器:`其中:{id_in:[X,Y,Z]}`或者`其中: {volume_gt:100000}`。 @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### 在单个请求中合并多个查询 +### 5. Combine Multiple Queries in a Single Request 您的应用程序可能需要查询多种类型的数据,如下所示: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -虽然这个实现是完全有效的,但它需要使用GraphQL API进行两次交互。 +While this implementation is valid, it will require two round trips with the GraphQL API. -幸运的是,在同一GraphQL请求中发送多个查询也是有效的,如下所示: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -这个方法将**改进整体性能**,减少网络上花费的时间(将你节省一次回程旅行到 API),并提供一个**更简洁的实现**。 +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### 利用GraphQL片段 +### 6. Leverage GraphQL Fragments 编写GraphQL查询的一个有用功能是GraphQL片段。 @@ -335,7 +332,7 @@ query { - 更广泛的查询变得更难阅读。 - 当使用基于查询生成类型的 TypeScript 类型的工具 (_more on that in the last section_), `newDelegate`和`oldDelegate`将导致两个不同的内联接口。 -查询的重构版本如下: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -使用 GraphQL `fragment` 将提高可读性(尤其在规模上),并导致更好的 TypeScript 类型生成。 +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. 当使用类型生成工具时,上面的查询将生成一个适当的`DelegateItemFragment` 类型(_see last "Tools" section _)。 -### GraphQL片段的注意事项 +## GraphQL Fragment Guidelines -### 片段必须是一种类型 +### Do's and Don'ts for Fragments -片段不能基于不适用的类型,简而言之,**基于没有字段的类型**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +例子: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` 是一个 **scalar** (原生"plain" 类型),不能用作碎片的基础。 - -#### 如何传播片段 - -片段是在特定类型上定义的,应该在查询中相应地使用。 +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. 例子: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate`和`oldDelegate`都是`Transcoder`的类型。 +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -不可能在这里散布`Vote`型号的片段。 +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### 将片段定义为数据的原子业务单元。 +--- -必须根据它们的用途来定义GraphQL `Fragment` 。 +### How to Define `Fragment` as an Atomic Business Unit of Data -对于大多数用例,为每个类型定义一个片段(在重复使用字段或生成类型的情况下)就足够了。 +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -以下是使用Fragment的经验法则: +Here is a rule of thumb for using fragments: -- 当同类字段重复查询时,将它们分组为`片段`。 -- 当重复类似但不相同的字段时,创建多个片段,例如: +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +例子: ```graphql # base fragment (主要在上架中使用) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## 重要工具 +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL基于web的浏览器 +### Setting up Workflow and IDE Tools -通过在您的应用程序中运行这些查询来绕过它们,可能是繁琐的。 为此,请不要犹豫地使用 [Graph Explorer](https://thegraph.com/explorer) 来测试您的查询,然后将它们添加到您的应用程序中。 Graph Explorer将为您提供一个预配置的 GraphQL 播放场,以测试您的查询。 +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -如果您正在寻找一种更灵活的方式来调试或测试您的查询, 其他类似的网络工具也可用,如 [Altair](https://altairgraphql.dev/) 和 [GraphiQL](https://graphiql-online.com/graphiql)。 +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -为了跟上提到的最佳实践和语法规则,强烈建议使用以下工作流和IDE工具。 +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started)将帮助您保持在 GraphQL 最佳做法之外的零努力状态。 +This will enforce essential rules such as: -[设置“推荐操作”](https://the-guild.dev/graphql/eslint/docs/configs)配置将强制执行基本规则,例如: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: 字段是否用于适当类型? -- `@graphql-eslint/no-used 变量`: 某个变量是否不使用? -- 还有更多! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -这将允许您在运作场上**捕获错误——甚至不需要测试查询** 或者在生产中运行它们! +#### Use IDE plugins -### IDE插件 +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode和GraphQL** +1. VS Code -[GraphQL VSCode扩展](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql)是开发工作流程中一个很好的补充,可以获得: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - 语法高亮 - 自动完成建议 @@ -474,11 +484,11 @@ fragment VoteWithPoll on Vote { - 代码片段 - 转到片段和输入类型的定义 -如果您使用 `graphql-eslint`, [ESLint VSCode 扩展](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) 是一个必须直观的错误和警告包含在您的代码中是正确的。 +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij和GraphQL** +2. WebStorm/Intellij and GraphQL -[JS GraphQL插件](https://plugins.jetbrains.com/plugin/8097-graphql/) 在使用 GraphQL 时将通过提供以下方式大大改进您的体验: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - 语法高亮 - 自动完成建议 From cdbe2796ca3b41cc70a7d4b277430e318fdf8336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:24 -0400 Subject: [PATCH 1156/1709] New translations best-practices.mdx (Urdu (Pakistan)) --- .../ur/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/ur/subgraphs/querying/best-practices.mdx b/website/src/pages/ur/subgraphs/querying/best-practices.mdx index 428dbc57ae1f..65500a7699ba 100644 --- a/website/src/pages/ur/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/ur/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: بہترین طریقوں سے کیوری کرنا --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -REST API کے برعکس، ایک GraphQL API ایک اسکیما پر بنایا گیا ہے جو اس بات کی وضاحت کرتا ہے کہ کون سے کیوری کیے جا سکتے ہیں. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- کسی دلیل کو تفویض کردہ کوئی بھی متغیر اس کی قسم سے مماثل ہونا چاہیے. -- متغیرات کی دی گئی فہرست میں، ان میں سے ہر ایک منفرد ہونا چاہیے. -- تمام متعین متغیرات کو استعمال کیا جانا چاہیے. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. کسی دلیل کو تفویض کردہ کوئی بھی متغیر اس کی قسم سے مماثل ہونا چاہیے. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### GraphQL API کو ایک کیوری بھیجنا +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - مکمل طور پر ٹائپ شدہ نتیجہ -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## بہترین طریقے -### ہمیشہ جامد کیوریز لکھیں +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- GraphQL APIs سے کیوری کرتے وقت، ہمیشہ صرف ان فیلڈز سے کیوری کرنے کے بارے میں سوچیں جو حقیقت میں استعمال ہوں گے. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### لیوریج GraphQL فریگمنٹس +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL فریگمنٹ کیا کریں اور نہ کریں +## GraphQL Fragment Guidelines -### فریگمنٹ بیس ایک ٹائپ کا ہونا چاہیے +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +مثال: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### فریگمینٹ پھیلانے کا طریقہ - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. مثال: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### فریگمنٹ کو ڈیٹا کی ایٹم بزنس یونٹ کے طور پر بیان کریں +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +مثال: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL ویب پر مبنی ایکسپلوررز +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL لنٹنگ +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- اور مزید! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From d10002816db3a70a40eaa4f60708d6f68fb72aa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:26 -0400 Subject: [PATCH 1157/1709] New translations best-practices.mdx (Vietnamese) --- .../vi/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/vi/subgraphs/querying/best-practices.mdx b/website/src/pages/vi/subgraphs/querying/best-practices.mdx index ab02b27cbc03..372507f29bb9 100644 --- a/website/src/pages/vi/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/vi/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -Unlike REST API, a GraphQL API is built upon a Schema that defines which queries can be performed. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +Example: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. Example: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +Example: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 2fcc89cbb986de5873941ffddea3756740b9c28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:28 -0400 Subject: [PATCH 1158/1709] New translations best-practices.mdx (Marathi) --- .../mr/subgraphs/querying/best-practices.mdx | 188 +++++++++--------- 1 file changed, 99 insertions(+), 89 deletions(-) diff --git a/website/src/pages/mr/subgraphs/querying/best-practices.mdx b/website/src/pages/mr/subgraphs/querying/best-practices.mdx index db52212384b1..f1b78701982c 100644 --- a/website/src/pages/mr/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/mr/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph provides a decentralized way to query data from blockchains. Its data is exposed through a GraphQL API, making it easier to query with the GraphQL language. - -Learn the essential GraphQL language rules and best practices to optimize your Subgraph. +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ Learn the essential GraphQL language rules and best practices to optimize your S ### The Anatomy of a GraphQL Query -REST API च्या विपरीत, GraphQL API एका स्कीमावर तयार केले जाते जे कोणत्या क्वेरी पूर्ण केल्या जाऊ शकतात हे परिभाषित करते. +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -For example, a query to get a token using the `token` query will look as follows: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -which will return the following predictable JSON response (_when passing the proper `$id` variable value_): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ which will return the following predictable JSON response (_when passing the pro } ``` -GraphQL queries use the GraphQL language, which is defined upon [a specification](https://spec.graphql.org/). - The above `GetToken` query is composed of multiple language parts (replaced below with `[...]` placeholders): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## Rules for Writing GraphQL Queries +### Rules for Writing GraphQL Queries -- Each `queryName` must only be used once per operation. -- Each `field` must be used only once in a selection (we cannot query `id` twice under `token`) -- Some `field`s or queries (like `tokens`) return complex types that require a selection of sub-field. Not providing a selection when expected (or providing one when not expected - for example, on `id`) will raise an error. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). -- Any variable assigned to an argument must match its type. -- In a given list of variables, each of them must be unique. -- All defined variables must be used. +> Important: Failing to follow these rules will result in an error from The Graph API. -> Note: Failing to follow these rules will result in an error from The Graph API. +1. Each `queryName` must only be used once per operation. +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. Any variable assigned to an argument must match its type. +5. Variables must be uniquely defined and used. -For a complete list of rules with code examples, check out [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/). +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### Sending a query to a GraphQL API +### How to Send a Query to a GraphQL API -GraphQL is a language and set of conventions that transport over HTTP. +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -It means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). - -However, as mentioned in ["Querying from an Application"](/subgraphs/querying/from-an-application/), it's recommended to use `graph-client`, which supports the following unique features: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: Querying from multiple Subgraphs in a single query - [Automatic Block Tracking](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) - [Automatic Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - Fully typed result -Here's how to query The Graph with `graph-client`: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL client alternatives are covered in ["Querying from an Application"](/subgraphs/querying/from-an-application/). +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### Always write static queries +### 1. Always Write Static Queries -A common (bad) practice is to dynamically build query strings as follows: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -124,14 +120,16 @@ query GetToken { // Execute query... ``` -While the above snippet produces a valid GraphQL query, **it has many drawbacks**: +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- it makes it **harder to understand** the query as a whole -- developers are **responsible for safely sanitizing the string interpolation** -- not sending the values of the variables as part of the request parameters **prevent possible caching on server-side** -- it **prevents tools from statically analyzing the query** (ex: Linter, or type generations tools) +Instead, it's recommended to **always write queries as static strings**. -For this reason, it is recommended to always write queries as static strings: +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -153,18 +151,21 @@ const result = await execute(query, { }) ``` -Doing so brings **many advantages**: +Static strings have several **key advantages**: -- **Easy to read and maintain** queries -- The GraphQL **server handles variables sanitization** -- **Variables can be cached** at server-level -- **Queries can be statically analyzed by tools** (more on this in the following sections) +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### How to include fields conditionally in static queries +### 2. Include Fields Conditionally in Static Queries -You might want to include the `owner` field only on a particular condition. +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -For this, you can leverage the `@include(if:...)` directive as follows: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -187,15 +188,11 @@ const result = await execute(query, { }) ``` -> Note: The opposite directive is `@skip(if: ...)`. - -### Ask for what you want - -GraphQL became famous for its "Ask for what you want" tagline. +### 3. Ask Only For What You Want -For this reason, there is no way, in GraphQL, to get all available fields without having to list them individually. +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- When querying GraphQL APIs, always think of querying only the fields that will be actually used. +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - Make sure queries only fetch as many entities as you actually need. By default, queries will fetch 100 entities in a collection, which is usually much more than what will actually be used, e.g., for display to the user. This applies not just to top-level collections in a query, but even more so to nested collections of entities. For example, in the following query: @@ -215,9 +212,9 @@ query listTokens { The response could contain 100 transactions for each of the 100 tokens. -If the application only needs 10 transactions, the query should explicitly set `first: 10` on the transactions field. +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### Use a single query to request multiple records +### 4. Use a Single Query to Request Multiple Records By default, Subgraphs have a singular entity for one record. For multiple records, use the plural entities and filter: `where: {id_in:[X,Y,Z]}` or `where: {volume_gt:100000}` @@ -249,7 +246,7 @@ query ManyRecords { } ``` -### Combine multiple queries in a single request +### 5. Combine Multiple Queries in a Single Request Your application might require querying multiple types of data as follows: @@ -281,9 +278,9 @@ const [tokens, counters] = Promise.all( ) ``` -While this implementation is totally valid, it will require two round trips with the GraphQL API. +While this implementation is valid, it will require two round trips with the GraphQL API. -Fortunately, it is also valid to send multiple queries in the same GraphQL request as follows: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -304,9 +301,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -This approach will **improve the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and will provide a **more concise implementation**. +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### Leverage GraphQL Fragments +### 6. Leverage GraphQL Fragments A helpful feature to write GraphQL queries is GraphQL Fragment. @@ -335,7 +332,7 @@ Such repeated fields (`id`, `active`, `status`) bring many issues: - More extensive queries become harder to read. - When using tools that generate TypeScript types based on queries (_more on that in the last section_), `newDelegate` and `oldDelegate` will result in two distinct inline interfaces. -A refactored version of the query would be the following: +An optimized version of the query would be the following: ```graphql query { @@ -359,15 +356,18 @@ fragment DelegateItem on Transcoder { } ``` -Using GraphQL `fragment` will improve readability (especially at scale) and result in better TypeScript types generation. +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. When using the types generation tool, the above query will generate a proper `DelegateItemFragment` type (_see last "Tools" section_). -### GraphQL Fragment do's and don'ts +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -A Fragment cannot be based on a non-applicable type, in short, **on type not having fields**: +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +उदाहरण: ```graphql fragment MyFragment on BigInt { @@ -375,11 +375,8 @@ fragment MyFragment on BigInt { } ``` -`BigInt` is a **scalar** (native "plain" type) that cannot be used as a fragment's base. - -#### How to spread a Fragment - -Fragments are defined on specific types and should be used accordingly in queries. +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. उदाहरण: @@ -402,20 +399,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` and `oldDelegate` are of type `Transcoder`. +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -It is not possible to spread a fragment of type `Vote` here. +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Define Fragment as an atomic business unit of data +--- -GraphQL `Fragment`s must be defined based on their usage. +### How to Define `Fragment` as an Atomic Business Unit of Data -For most use-case, defining one fragment per type (in the case of repeated fields usage or type generation) is sufficient. +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. Here is a rule of thumb for using fragments: - When fields of the same type are repeated in a query, group them in a `Fragment`. -- When similar but different fields are repeated, create multiple fragments, for instance: +- When similar but different fields are repeated, create multiple fragments. + +उदाहरण: ```graphql # base fragment (mostly used in listing) @@ -438,35 +438,45 @@ fragment VoteWithPoll on Vote { --- -## The Essential Tools +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### GraphQL web-based explorers +### Setting up Workflow and IDE Tools -Iterating over queries by running them in your application can be cumbersome. For this reason, don't hesitate to use [Graph Explorer](https://thegraph.com/explorer) to test your queries before adding them to your application. Graph Explorer will provide you a preconfigured GraphQL playground to test your queries. +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -If you are looking for a more flexible way to debug/test your queries, other similar web-based tools are available such as [Altair](https://altairgraphql.dev/) and [GraphiQL](https://graphiql-online.com/graphiql). +#### GraphQL ESLint -### GraphQL Linting +1. Install GraphQL ESLint -In order to keep up with the mentioned above best practices and syntactic rules, it is highly recommended to use the following workflow and IDE tools. +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) will help you stay on top of GraphQL best practices with zero effort. +This will enforce essential rules such as: -[Setup the "operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config will enforce essential rules such as: +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: is a field used on a proper type? -- `@graphql-eslint/no-unused variables`: should a given variable stay unused? -- and more! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -This will allow you to **catch errors without even testing queries** on the playground or running them in production! +#### Use IDE plugins -### IDE plugins +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode and GraphQL** +1. VS Code -The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) is an excellent addition to your development workflow to get: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - Syntax highlighting - Autocomplete suggestions @@ -474,11 +484,11 @@ The [GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemNa - Snippets - Go to definition for fragments and input types -If you are using `graphql-eslint`, the [ESLint VSCode extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) is a must-have to visualize errors and warnings inlined in your code correctly. +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij and GraphQL** +2. WebStorm/Intellij and GraphQL -The [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/) will significantly improve your experience while working with GraphQL by providing: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - Syntax highlighting - Autocomplete suggestions From 3a08a1abf5c7b2ec2a1a9a545fbb6b384d699d62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:29 -0400 Subject: [PATCH 1159/1709] New translations advanced.mdx (Hindi) --- .../developing/creating/advanced.mdx | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/website/src/pages/hi/subgraphs/developing/creating/advanced.mdx b/website/src/pages/hi/subgraphs/developing/creating/advanced.mdx index 22a80fd744e2..f6540dd317c2 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/advanced.mdx +++ b/website/src/pages/hi/subgraphs/developing/creating/advanced.mdx @@ -8,11 +8,11 @@ title: उन्नत Subgraph विशेषताएँ `specVersion` `0.0.4` से शुरू होकर, सबग्राफ सुविधाओं को स्पष्ट रूप से `विशेषता` अनुभाग में शीर्ष स्तर पर घोषित किया जाना चाहिए, जो उनके `camelCase` नाम का उपयोग करके किया जाता है, जैसा कि नीचे दी गई तालिका में सूचीबद्ध है: -| विशेषता | नाम | -| ------------------------------------------------- | -------------------- | -| [गैर-घातक त्रुटियाँ](#non-fatal-errors) | `गैर-घातक त्रुटियाँ` | -| [पूर्ण-पाठ खोज](#defining-fulltext-search-fields) | `पूर्ण-पाठ खोज` | -| [Grafting](#grafting-onto-existing-subgraphs) | `grafting` | +| विशेषता | नाम | +| ------------------------------------------------------ | -------------------- | +| [गैर-घातक त्रुटियाँ](#non-fatal-errors) | `गैर-घातक त्रुटियाँ` | +| [पूर्ण-पाठ खोज](#defining-fulltext-search-fields) | `पूर्ण-पाठ खोज` | +| [Grafting](#grafting-onto-existing-subgraphs) | `grafting` | instance के लिए, यदि कोई सबग्राफ **Full-Text Search** और **Non-fatal Errors** सुविधाओं का उपयोग करता है, तो मैनिफेस्ट में `विशेषता` फ़ील्ड इस प्रकार होनी चाहिए: @@ -97,7 +97,7 @@ type Stats @aggregation(intervals: ["hour", "day"], source: "Data") { ## गैर-घातक त्रुटियाँ -indexing त्रुटियाँ, जो पहले से सिंक हो चुके सबग्राफ पर होती हैं, डिफ़ॉल्ट रूप से सबग्राफ को विफल कर देंगी और सिंकिंग रोक देंगी। वैकल्पिक रूप से, सबग्राफ को इस तरह कॉन्फ़िगर किया जा सकता है कि वे त्रुटियों की उपस्थिति में भी सिंकिंग जारी रखें, उन परिवर्तनों को अनदेखा करके जो उस handler द्वारा किए गए थे जिसने त्रुटि उत्पन्न की। यह सबग्राफ लेखकों को अपने सबग्राफ को सही करने का समय देता है, जबकि नवीनतम ब्लॉक के विरुद्ध क्वेरीज़ दी जाती रहती हैं, हालांकि परिणाम उस बग के कारण असंगत हो सकते हैं जिसने त्रुटि उत्पन्न की थी। ध्यान दें कि कुछ त्रुटियाँ फिर भी हमेशा घातक होती हैं। गैर-घातक होने के लिए, त्रुटि को निर्धारक (deterministic) रूप से ज्ञात होना चाहिए। +indexing त्रुटियाँ, जो पहले से सिंक हो चुके सबग्राफ पर होती हैं, डिफ़ॉल्ट रूप से सबग्राफ को विफल कर देंगी और सिंकिंग रोक देंगी। वैकल्पिक रूप से, सबग्राफ को इस तरह कॉन्फ़िगर किया जा सकता है कि वे त्रुटियों की उपस्थिति में भी सिंकिंग जारी रखें, उन परिवर्तनों को अनदेखा करके जो उस handler द्वारा किए गए थे जिसने त्रुटि उत्पन्न की। यह सबग्राफ लेखकों को अपने सबग्राफ को सही करने का समय देता है, जबकि नवीनतम ब्लॉक के विरुद्ध क्वेरीज़ दी जाती रहती हैं, हालांकि परिणाम उस बग के कारण असंगत हो सकते हैं जिसने त्रुटि उत्पन्न की थी। ध्यान दें कि कुछ त्रुटियाँ फिर भी हमेशा घातक होती हैं। गैर-घातक होने के लिए, त्रुटि को निर्धारक (deterministic) रूप से ज्ञात होना चाहिए। > **नोट:**ग्राफ नेटवर्क अभी तक गैर-घातक त्रुटियों का समर्थन नहीं करता है, और डेवलपर्स को स्टूडियो के माध्यम से उस कार्यक्षमता का उपयोग करके सबग्राफ को नेटवर्क पर परिनियोजित नहीं करना चाहिए। @@ -343,7 +343,8 @@ export function handleTransfer(event: TransferEvent): void { आप [ DataSource context](/subgraphs/developing/creating/graph-ts/api/#entity-and-datasourcecontext) का उपयोग कर सकते हैं जब आप File Data साधन बना रहे हों ताकि अतिरिक्त जानकारी पास की जा सके जो File Data साधन handler में उपलब्ध होगी। -यदि आपके पास ऐसी entities हैं जो कई बार रिफ्रेश होती हैं, तो IPFS हैश और entity ID का उपयोग करके unique file-based entities बनाएं, और उन्हें chain-based entity में एक derived field का उपयोग करके संदर्भित करें। entities +यदि आपके पास ऐसी entities हैं जो कई बार रिफ्रेश होती हैं, तो IPFS हैश और entity ID का उपयोग करके unique file-based entities बनाएं, और उन्हें chain-based entity में एक derived field का उपयोग करके संदर्भित करें। +entities > हम ऊपर दिए गए सुझाव को बेहतर बनाने के लिए काम कर रहे हैं, इसलिए क्वेरी केवल "नवीनतम" संस्करण लौटाती हैं @@ -355,7 +356,7 @@ export function handleTransfer(event: TransferEvent): void { #### उदाहरण -[Crypto Coven सबग्राफ migration](https://github.com/azf20/cryptocoven-api/tree/file-data-sources-refactor) +[Crypto Coven सबग्राफ migration](https://github.com/azf20/cryptocoven-api/tree/file-data-sources-refactor) #### संदर्भ @@ -529,13 +530,14 @@ calls: ```yaml calls: - ERC20DecimalsToken0: ERC20[event.params.token0].decimals() + ``` ### मौजूदा सबग्राफ पर ग्राफ्टिंग > **नोट**: प्रारंभिक रूप से The Graph Network में अपग्रेड करते समय graft का उपयोग करने की अनुशंसा नहीं की जाती है। अधिक जानें [यहाँ](/subgraphs/cookbook/grafting/#important-note-on-grafting-when-upgrading-to-the-network)। -जब कोई सबग्राफ पहली बार डिप्लॉय किया जाता है, तो यह संबंधित चेन के जेनेसिस ब्लॉक (या प्रत्येक डेटा स्रोत के साथ परिभाषित `startBlock`) से इवेंट्स को indexing करना शुरू करता है। कुछ परिस्थितियों में, मौजूदा सबग्राफ से डेटा को पुन: उपयोग करना और किसी बाद के ब्लॉक से इंडेक्सिंग शुरू करना फायदेमंद होता है। इस indexing मोड को _Grafting_ कहा जाता है। उदाहरण के लिए, विकास के दौरान, यह मैपिंग में छोटे एरर्स को जल्दी से पार करने या किसी मौजूदा सबग्राफ को फिर से चालू करने के लिए उपयोगी होता है, यदि वह फेल हो गया हो। +जब कोई सबग्राफ पहली बार डिप्लॉय किया जाता है, तो यह संबंधित चेन के जेनेसिस ब्लॉक (या प्रत्येक डेटा स्रोत के साथ परिभाषित `startBlock`) से इवेंट्स को indexing करना शुरू करता है। कुछ परिस्थितियों में, मौजूदा सबग्राफ से डेटा को पुन: उपयोग करना और किसी बाद के ब्लॉक से इंडेक्सिंग शुरू करना फायदेमंद होता है। इस indexing मोड को _Grafting_ कहा जाता है। उदाहरण के लिए, विकास के दौरान, यह मैपिंग में छोटे एरर्स को जल्दी से पार करने या किसी मौजूदा सबग्राफ को फिर से चालू करने के लिए उपयोगी होता है, यदि वह फेल हो गया हो। एक सबग्राफ को एक बेस सबग्राफ पर graft किया जाता है जब `subgraph.yaml` में सबग्राफ manifest में शीर्ष स्तर पर एक `graft` ब्लॉक होता है। @@ -546,7 +548,7 @@ graft: block: 7345624 # Block number ``` -जब कोई सबग्राफ , जिसकी मैनिफेस्ट में `graft` ब्लॉक शामिल होता है, डिप्लॉय किया जाता है, तो ग्राफ-नोड दिए गए `block` तक base सबग्राफ के डेटा को कॉपी करेगा और फिर उस ब्लॉक से नए सबग्राफ को इंडेक्स करना जारी रखेगा। base सबग्राफ को लक्षित ग्राफ-नोड इंस्टेंस पर मौजूद होना चाहिए और कम से कम दिए गए ब्लॉक तक इंडेक्स किया जाना चाहिए। इस प्रतिबंध के कारण, ग्राफ्टिंग का उपयोग केवल डेवलपमेंट के दौरान या किसी आपात स्थिति में एक समान गैर-ग्राफ्टेड सबग्राफ को जल्दी से तैयार करने के लिए किया जाना चाहिए। +जब कोई सबग्राफ , जिसकी मैनिफेस्ट में `graft` ब्लॉक शामिल होता है, डिप्लॉय किया जाता है, तो ग्राफ-नोड दिए गए `block` तक base सबग्राफ के डेटा को कॉपी करेगा और फिर उस ब्लॉक से नए सबग्राफ को इंडेक्स करना जारी रखेगा। base सबग्राफ को लक्षित ग्राफ-नोड इंस्टेंस पर मौजूद होना चाहिए और कम से कम दिए गए ब्लॉक तक इंडेक्स किया जाना चाहिए। इस प्रतिबंध के कारण, ग्राफ्टिंग का उपयोग केवल डेवलपमेंट के दौरान या किसी आपात स्थिति में एक समान गैर-ग्राफ्टेड सबग्राफ को जल्दी से तैयार करने के लिए किया जाना चाहिए। ग्राफ्टिंग मूल डेटा के बजाय प्रतिलिपियाँ बनाता है, इसलिए यह शुरू से इंडेक्सिंग करने की तुलना में सबग्राफ को वांछित ब्लॉक तक पहुँचाने में कहीं अधिक तेज़ होता है, हालाँकि बहुत बड़े सबग्राफ के लिए प्रारंभिक डेटा कॉपी करने में अभी भी कई घंटे लग सकते हैं। जब तक ग्राफ्ट किया गया सबग्राफ प्रारंभिक रूप से स्थापित हो रहा होता है, तब तक The ग्राफ नोड उन entity प्रकारों के बारे में जानकारी लॉग करेगा जिन्हें पहले ही कॉपी किया जा चुका है। From be79bb27288b5b5a43afe7886d4e64f28440d7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Tue, 27 May 2025 12:16:30 -0400 Subject: [PATCH 1160/1709] New translations best-practices.mdx (Hindi) --- .../hi/subgraphs/querying/best-practices.mdx | 197 +++++++++--------- 1 file changed, 104 insertions(+), 93 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/best-practices.mdx b/website/src/pages/hi/subgraphs/querying/best-practices.mdx index aa4caefd2f3d..aff2142766ec 100644 --- a/website/src/pages/hi/subgraphs/querying/best-practices.mdx +++ b/website/src/pages/hi/subgraphs/querying/best-practices.mdx @@ -2,9 +2,7 @@ title: Querying Best Practices --- -The Graph ब्लॉकचेन से डेटा क्वेरी करने का एक विकेन्द्रीकृत तरीका प्रदान करता है। इसका डेटा एक GraphQL API के माध्यम से एक्सपोज़ किया जाता है, जिससे इसे GraphQL भाषा के साथ क्वेरी करना आसान हो जाता है। - -GraphQL भाषा के आवश्यक नियम और Best Practices सीखें ताकि आप अपने Subgraph को optimize कर सकें। +Use The Graph's GraphQL API to query [Subgraph](/subgraphs/developing/subgraphs/) data efficiently. This guide outlines essential GraphQL rules, guides, and best practices to help you write optimized, reliable queries. --- @@ -12,9 +10,11 @@ GraphQL भाषा के आवश्यक नियम और Best Practice ### GraphQL Query की संरचना -REST API के विपरीत, एक रेखांकन API एक स्कीमा पर बनाया गया है जो परिभाषित करता है कि कौन से प्रश्न किए जा सकते हैं। +> GraphQL queries use the GraphQL language, which is defined in the [GraphQL specification](https://spec.graphql.org/). + +Unlike REST APIs, GraphQL APIs are built on a schema-driven design that defines which queries can be performed. -उदाहरण के लिए, `token` क्वेरी का उपयोग करके एक टोकन प्राप्त करने के लिए की गई क्वेरी इस प्रकार होगी: +Here's a typical query to fetch a `token`: ```graphql query GetToken($id: ID!) { @@ -25,7 +25,7 @@ query GetToken($id: ID!) { } ``` -जो निम्नलिखित पूर्वानुमानित JSON प्रतिक्रिया लौटाएगा (जब उचित `$id` variable value\_ पास किया जाएगा): +which will return a predictable JSON response (when passing the proper `$id` variable value): ```json { @@ -36,8 +36,6 @@ query GetToken($id: ID!) { } ``` -GraphQL क्वेरीज़ GraphQL भाषा का उपयोग करती हैं, जो कि [एक स्पेसिफिकेशन](https://spec.graphql.org/) पर परिभाषित है। - उपरोक्त `GetToken` क्वेरी कई भाषाओं के भागों से बनी है (नीचे `[...]` प्लेसहोल्डर के साथ प्रतिस्थापित): ```graphql @@ -50,33 +48,31 @@ query [operationName]([variableName]: [variableType]) { } ``` -## GraphQL क्वेरी लिखने के नियम +### GraphQL क्वेरी लिखने के नियम -- प्रत्येक `queryName` को प्रत्येक ऑपरेशन में केवल एक बार ही उपयोग किया जाना चाहिए। -- प्रत्येक `field` का चयन में केवल एक बार ही उपयोग किया जा सकता है (हम `token` के अंतर्गत id को दो बार क्वेरी नहीं कर सकते)। -- कुछ field या क्वेरी (जैसे tokens) जटिल प्रकार के परिणाम लौटाते हैं, जिनके लिए उप-फ़ील्ड का चयन आवश्यक होता है। जब अपेक्षित हो तब चयन न देना (या जब अपेक्षित न हो - उदाहरण के लिए, id पर चयन देना) एक त्रुटि उत्पन्न करेगा। किसी फ़ील्ड के प्रकार को जानने के लिए, कृपया [Graph Explorer](/subgraphs/explorer/) देखें। -- किसी तर्क को असाइन किया गया कोई भी चर उसके प्रकार से मेल खाना चाहिए। -- चरों की दी गई सूची में, उनमें से प्रत्येक अद्वितीय होना चाहिए। -- सभी परिभाषित चर का उपयोग किया जाना चाहिए। +> Important: Failing to follow these rules will result in an error from The Graph API. -> ध्यान दें: इन नियमों का पालन न करने पर The Graph API से त्रुटि होगी। +1. प्रत्येक `queryName` को प्रत्येक ऑपरेशन में केवल एक बार ही उपयोग किया जाना चाहिए। +2. Each `field` must be used only once in a selection (you cannot query `id` twice under `token`). +3. Complex types require a selection of sub-fields. + - For example, some `fields' or queries (like `tokens`) return complex types which will require a selection of sub-fields. Not providing a selection when expected or providing one when not expected will raise an error, such as `id\`. To know a field type, please refer to [Graph Explorer](/subgraphs/explorer/). +4. किसी तर्क को असाइन किया गया कोई भी चर उसके प्रकार से मेल खाना चाहिए। +5. Variables must be uniquely defined and used. -पूरी नियमों की सूची और कोड उदाहरणों के लिए GraphQL Validations guide देखें: (https://thegraph.com/resources/migration-guides/graphql-validations-migration-guide/) +**For a complete list of rules with code examples, check out the [GraphQL Validations guide](/resources/migration-guides/graphql-validations-migration-guide/)**. -### एक ग्राफ़क्यूएल एपीआई के लिए एक प्रश्न भेजना +### How to Send a Query to a GraphQL API -GraphQL एक भाषा और प्रथाओं का सेट है जो HTTP के माध्यम से संचालित होता है। +[GraphQL is a query language](https://graphql.org/learn/) and a set of conventions for APIs, typically used over HTTP to request and send data between clients and servers. This means that you can query a GraphQL API using standard `fetch` (natively or via `@whatwg-node/fetch` or `isomorphic-fetch`). -इसका मतलब है कि आप एक GraphQL API को मानक `fetch` (स्थानीय रूप से या `@whatwg-node/fetch` या `isomorphic-fetch` के माध्यम से) का उपयोग करके क्वेरी कर सकते हैं। - -हालांकि, जैसा कि ["Querying from an Application"](/subgraphs/querying/from-an-application/) में उल्लेख किया गया है, यह अनुशंसित है कि `graph-client` का उपयोग किया जाए, जो निम्नलिखित अद्वितीय विशेषताओं का समर्थन करता है: +However, as recommended in [Querying from an Application](/subgraphs/querying/from-an-application/), it's best to use `graph-client`, which supports the following unique features: - Cross-chain Subgraph Handling: एक ही query में multiple Subgraphs से data प्राप्त करना - [स्वचालित ब्लॉक ट्रैकिंग](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) -- [स्वचालित Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) +- [स्वचालित Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - पूरी तरह से टाइप किया गया परिणाम -The Graph के साथ `graph-client` का उपयोग करके क्वेरी करने का तरीका: +Example query using `graph-client`: ```tsx import { execute } from '../.graphclient' @@ -100,15 +96,15 @@ async function main() { main() ``` -More GraphQL क्लाइंट विकल्पों को ["Querying from an Application"](/subgraphs/querying/from-an-application/) में कवर किया गया है। +For more alternatives, see ["Querying from an Application"](/subgraphs/querying/from-an-application/). --- ## Best Practices -### हमेशा स्टैटिक क्वेश्चन लिखें +### 1. Always Write Static Queries -एक सामान्य (खराब) प्रथा है कि क्वेरी स्ट्रिंग्स को निम्नलिखित तरीके से गतिशील रूप से बनाया जाए: +A common bad practice is to dynamically build a query string as follows: ```tsx const id = params.id @@ -122,14 +118,16 @@ query GetToken { ` ``` -जबकि उपरोक्त स्निपेट एक मान्य GraphQL क्वेरी उत्पन्न करता है, **इसमें कई कमियाँ हैं:** +While the example above produces a valid GraphQL query, it comes with several issues: + +- The full query is harder to understand. +- Developers are responsible for safely sanitizing the string interpolation. +- Not sending the values of the variables as part of the request can block server-side caching. +- It prevents tools from statically analyzing the query (e.g.linters or type generation tools). -- यह संपूर्ण क्वेरी को समझना **और कठिन बना देता है।** -- डेवलपर्स स्ट्रिंग **इंटरपोलेशन को सुरक्षित रूप से सैनिटाइज़ करने के लिए जिम्मेदार होते हैं** -- रिक्वेस्ट पैरामीटर्स के रूप में वेरिएबल्स के मान न भेजने से **सर्वर-साइड पर संभावित कैशिंग को रोका जा सकता है** -- यह **टूल्स को क्वेरी का स्टैटिक रूप से विश्लेषण करने से रोकता है** (उदाहरण: Linter या टाइप जेनरेशन टूल्स) +Instead, it's recommended to **always write queries as static strings**. -इसी कारण, यह अनुशंसा की जाती है कि हमेशा क्वेरीज़ को स्थिर स्ट्रिंग्स के रूप में लिखा जाए। +Example of static string: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -151,18 +149,21 @@ const result = await execute(query, { }) ``` -ऐसा करने से **कई लाभ** होते हैं: +Static strings have several **key advantages**: -- **आसानी से पढ़ने और बनाए रखने योग्य** क्वेरीज़ -- GraphQL **सर्वर वेरिएबल्स की स्वच्छता को संभालता है** -- **वेरिएबल्स को सर्वर-स्तर पर कैश** किया जा सकता है -- **क्वेरीज़ को उपकरणों द्वारा स्थिर रूप से विश्लेषण किया जा सकता है** (अधिक जानकारी निम्नलिखित अनुभागों में) - +- Queries are easier to read, manage, and debug. +- Variable sanitization is handled by the GraphQL server The GraphQL. +- Variables can be cached at the server level. +- Queries can be statically analyzed by tools (see [GraphQL Essential Tools](/subgraphs/querying/best-practices/#graphql-essential-tools-guides)). -### स्टेटिक क्वेरीज़ में फ़ील्ड्स को शर्तानुसार कैसे शामिल करें +### 2. Include Fields Conditionally in Static Queries -आप `owner` फ़ील्ड को केवल एक विशेष शर्त पर शामिल करना चाह सकते हैं। +Including fields in static queries only for a particular condition improves performance and keeps responses lightweight by fetching only the necessary data when it's relevant. -आप इसके लिए `@include(if:...)` निर्देश का उपयोग कर सकते हैं जैसे कि निम्नलिखित: +- The `@include(if:...)` directive tells the query to **include** a specific field only if the given condition is true. +- The `@skip(if: ...)` directive tells the query to **exclude** a specific field if the given condition is true. + +Example using `owner` field with `@include(if:...)` directive: ```tsx import { execute } from 'your-favorite-graphql-client' @@ -185,15 +186,11 @@ const result = await execute(query, { }) ``` -> नोट: विपरीत निर्देश `@skip(if: ...)` है। - -### आप जो चाहते हैं वह मांगें - -GraphQL अपने “Ask for what you want” टैगलाइन के लिए प्रसिद्ध हुआ। +### 3. Ask Only For What You Want -इस कारण, GraphQL में सभी उपलब्ध फ़ील्ड्स को बिना उन्हें व्यक्तिगत रूप से सूचीबद्ध किए प्राप्त करने का कोई तरीका नहीं है। +GraphQL is known for its "Ask for what you want” tagline, which is why it requires explicitly listing each field you want. There's no built-in way to fetch all available fields automatically. -- GraphQL APIs query करते समय, हमेशा वो fields की query करने की सोचें जो वास्तव में use होंगे। +- When querying GraphQL APIs, always think of querying only the fields that will actually be used. - सुनिश्चित करें कि क्वेरीज़ केवल उतने ही एंटिटीज़ लाएँ जितनी आपको वास्तव में आवश्यकता है। डिफ़ॉल्ट रूप से, क्वेरीज़ एक संग्रह में 100 एंटिटीज़ लाएँगी, जो आमतौर पर उपयोग में लाई जाने वाली मात्रा से अधिक होती है, जैसे कि उपयोगकर्ता को प्रदर्शित करने के लिए। यह न केवल एक क्वेरी में शीर्ष-स्तरीय संग्रहों पर लागू होता है, बल्कि एंटिटीज़ के नेस्टेड संग्रहों पर भी अधिक लागू होता है। उदाहरण के लिए, निम्नलिखित क्वेरी में: @@ -213,11 +210,12 @@ query listTokens { प्रतिक्रिया में प्रत्येक 100 टोकनों के लिए 100 लेन-देन(transaction) हो सकते हैं। -यदि application को केवल 10 लेन-देन(transaction) की आवश्यकता है, तो क्वेरी को लेनदेन फ़ील्ड पर स्पष्ट रूप से first: 10 सेट करना चाहिए। +If the application only needs 10 transactions, the query should explicitly set **`first: 10`** on the transactions field. -### एक ही क्वेरी का उपयोग करके कई रिकॉर्ड्स का अनुरोध करें +### 4. Use a Single Query to Request Multiple Records -डिफ़ॉल्ट रूप से, Subgraphs में एक record के लिए singular entity होती है। कई records प्राप्त करने के लिए, plural entities और filter का उपयोग करें: `where: {id_in:[X,Y,Z]}` या `where: {volume_gt:100000}` +डिफ़ॉल्ट रूप से, Subgraphs में एक record के लिए singular entity होती है। कई records प्राप्त करने के लिए, plural entities और filter का उपयोग करें: +`where: {id_in:[X,Y,Z]}` या `where: {volume_gt:100000}` अप्रभावी क्वेरी करने का उदाहरण: @@ -247,7 +245,7 @@ query ManyRecords { } ``` -### एकल अनुरोध में कई क्वेरियों को संयोजित करें। +### 5. Combine Multiple Queries in a Single Request आपका application निम्नलिखित प्रकार के डेटा को क्वेरी करने की आवश्यकता हो सकती है: - @@ -279,9 +277,9 @@ const [tokens, counters] = Promise.all( ) ``` -जबकि यह कार्यान्वयन पूरी तरह से मान्य है, यह GraphQL API के साथ दो राउंड ट्रिप की आवश्यकता होगी। +While this implementation is valid, it will require two round trips with the GraphQL API. -सौभाग्य से, एक ही GraphQL अनुरोध में कई क्वेरी भेजना भी मान्य है, जैसा कि नीचे दिया गया है: +It's best to send multiple queries in the same GraphQL request as follows: ```graphql import { execute } from "your-favorite-graphql-client" @@ -302,9 +300,9 @@ query GetTokensandCounters { const { result: { tokens, counters } } = execute(query) ``` -यह तरीका कुल मिलाकर प्रदर्शन में सुधार करेगा क्योंकि यह नेटवर्क पर बिताया गया समय कम करेगा (API के लिए एक राउंड ट्रिप बचाता है) और एक अधिक संक्षिप्त कार्यान्वयन प्रदान करेगा। +Sending multiple queries in the same GraphQL request **improves the overall performance** by reducing the time spent on the network (saves you a round trip to the API) and provides a **more concise implementation**. -### लीवरेज ग्राफक्यूएल फ़्रैगमेंट +### 6. Leverage GraphQL Fragments GraphQL क्वेरी लिखने में सहायक एक सुविधा है GraphQL Fragment। @@ -333,7 +331,7 @@ query { - बड़ी क्वेरीज़ पढ़ने में कठिन होती हैं। - जब ऐसे टूल्स का उपयोग किया जाता है जो क्वेरी के आधार पर TypeScript टाइप्स उत्पन्न करते हैं (इस पर अंतिम अनुभाग में और अधिक), newDelegate और oldDelegate दो अलग-अलग इनलाइन इंटरफेस के रूप में परिणत होंगे। -एक पुनर्गठित संस्करण का प्रश्न निम्नलिखित होगा: +An optimized version of the query would be the following: ```graphql query { @@ -357,15 +355,18 @@ fragment DelegateItem on Transcoder { } ``` -GraphQL में fragment का उपयोग पढ़ने की सुविधा बढ़ाएगा (विशेष रूप से बड़े स्तर पर) और बेहतर TypeScript प्रकारों की पीढ़ी का परिणाम देगा। +Using a GraphQL `fragment` improves readability (especially at scale) and results in better TypeScript types generation. जब टाइप्स जेनरेशन टूल का उपयोग किया जाता है, तो उपरोक्त क्वेरी एक सही 'DelegateItemFragment' टाइप उत्पन्न करेगी (अंतिम "Tools" अनुभाग देखें)। -### ग्राफकॉल फ्रैगमेंट क्या करें और क्या न करें +## GraphQL Fragment Guidelines -### Fragment base must be a type +### Do's and Don'ts for Fragments -एक फ़्रैगमेंट गैर-लागू प्रकार पर आधारित नहीं हो सकता, संक्षेप में, **ऐसे प्रकार पर जिसमें फ़ील्ड नहीं होते हैं।** +1. Fragments cannot be based on a non-applicable types (types without fields). +2. `BigInt` cannot be used as a fragment's base because it's a **scalar** (native "plain" type). + +उदाहरण: ```graphql fragment MyFragment on BigInt { @@ -373,11 +374,8 @@ fragment MyFragment on BigInt { } ``` -BigInt एक **स्केलर** (मूल "plain" type) है जिसे किसी फ़्रैगमेंट के आधार के रूप में उपयोग नहीं किया जा सकता। - -#### How to spread a Fragment - -फ्रैगमेंट विशिष्ट प्रकारों पर परिभाषित किए जाते हैं और उन्हें क्वेरी में उपयुक्त रूप से उपयोग किया जाना चाहिए। +3. Fragments belong to specific types and must be used with those same types in queries. +4. Spread only fragments matching the correct type. उदाहरण: @@ -400,20 +398,23 @@ fragment VoteItem on Vote { } ``` -`newDelegate` और `oldDelegate` प्रकार के `Transcoder` हैं। +- `newDelegate` and `oldDelegate` are of type `Transcoder`. It's not possible to spread a fragment of type `Vote` here. -यहाँ `Vote` प्रकार के एक खंड को फैलाना संभव नहीं है। +5. Fragments must be defined based on their specific usage. +6. Define fragments as an atomic business unit of data. -#### Fragment को data की एक atomic business unit के रूप में define करें। +--- -GraphQL `Fragments` को उनके उपयोग के आधार पर परिभाषित किया जाना चाहिए। +### How to Define `Fragment` as an Atomic Business Unit of Data -अधिकांश उपयोग मामलों के लिए, एक प्रकार पर एक फ़्रैगमेंट परिभाषित करना (दोहराए गए फ़ील्ड उपयोग या प्रकार निर्माण के मामले में) पर्याप्त होता है। +> For most use-cases, defining one fragment per type (in the case of repeated fields usage or type generation) is enough. -यहाँ एक सामान्य नियम है फ्रैगमेंट्स का उपयोग करने के लिए: +Here is a rule of thumb for using fragments: -- जब समान प्रकार के फ़ील्ड किसी क्वेरी में दोहराए जाते हैं, तो उन्हें` Fragment` में समूहित करें। -- जब समान लेकिन भिन्न फ़ील्ड्स को दोहराया जाता है, तो कई फ़्रैगमेंट्स बनाएं, उदाहरण के लिए: +- When fields of the same type are repeated in a query, group them in a `Fragment`. +- When similar but different fields are repeated, create multiple fragments. + +उदाहरण: ```graphql # base fragment (mostly used in listing) @@ -436,35 +437,45 @@ fragment VoteWithPoll on Vote { --- -## मूलभूत उपकरण +## GraphQL Essential Tools Guides + +### Test Queries with Graph Explorer + +Before integrating GraphQL queries into your dapp, it's best to test them. Instead of running them directly in your app, use a web-based playground. + +Start with [Graph Explorer](https://thegraph.com/explorer), a preconfigured GraphQL playground built specifically for Subgraphs. You can experiment with queries and see the structure of the data returned without writing any frontend code. + +If you want alternatives to debug/test your queries, check out other similar web-based tools: + +- [GraphiQL](https://graphiql-online.com/graphiql) +- [Altair](https://altairgraphql.dev/) -### ग्राफक्यूएल वेब-आधारित खोजकर्ता +### Setting up Workflow and IDE Tools -क्वेरीज़ को अपने application में चलाकर उनका पुनरावर्तन करना कठिन हो सकता है। इसी कारण, अपनी क्वेरीज़ को अपने application में जोड़ने से पहले उनका परीक्षण करने के लिए बिना किसी संकोच के [Graph Explorer](https://thegraph.com/explorer) का उपयोग करें। Graph Explorer आपको एक पूर्व-कॉन्फ़िगर किया हुआ GraphQL प्लेग्राउंड प्रदान करेगा, जहाँ आप अपनी क्वेरीज़ का परीक्षण कर सकते हैं। +In order to keep up with querying best practices and syntax rules, use the following workflow and IDE tools. -यदि आप अपनी क्वेरीज़ को डिबग/परखने के लिए एक अधिक लचीला तरीका ढूंढ रहे हैं, तो अन्य समान वेब-आधारित टूल उपलब्ध हैं जैसे [Altair](https://altairgraphql.dev/) और [GraphiQL](https://graphiql-online.com/graphiql) +#### GraphQL ESLint -### ग्राफक्यूएल लाइनिंग +1. Install GraphQL ESLint -उपरोक्त सर्वोत्तम प्रथाओं और वाक्य रचना नियमों का पालन करने के लिए, निम्नलिखित वर्कफ़्लो और IDE टूल्स का उपयोग करना अत्यधिक अनुशंसित है। +Use [GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) to enforce best practices and syntax rules with zero effort. -**GraphQL ESLint** +2. Use the ["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) config -[GraphQL ESLint](https://the-guild.dev/graphql/eslint/docs/getting-started) आपकी बिना किसी अतिरिक्त प्रयास के GraphQL सर्वोत्तम प्रथाओं का पालन करने में मदद करेगा। +This will enforce essential rules such as: -["operations-recommended"](https://the-guild.dev/graphql/eslint/docs/configs) कॉन्फ़िगरेशन सेटअप करने से आवश्यक नियम लागू होंगे जैसे:- +- `@graphql-eslint/fields-on-correct-type`: Ensures fields match the proper type. +- `@graphql-eslint/no-unused variables`: Flags unused variables in your queries. -- `@graphql-eslint/fields-on-correct-type`: क्या कोई फ़ील्ड सही प्रकार पर उपयोग की गई है? -- `@graphql-eslint/no-unused variables`: क्या दिया गया चर अनुपयोगी रहना चाहिए? -- और अधिक! +Result: You'll **catch errors without even testing queries** on the playground or running them in production! -यह आपको बिना प्लेग्राउंड पर क्वेरी का परीक्षण किए या उन्हें प्रोडक्शन में चलाए बिना ही त्रुटियों को पकड़ने की अनुमति देगा! +#### Use IDE plugins -### आईडीई प्लगइन्स +GraphQL plugins streamline your workflow by offering real-time feedback while you code. They highlight mistakes, suggest completions, and help you explore your schema faster. -**VSCode और GraphQL** +1. VS Code -[GraphQL VSCode extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) आपके विकास वर्कफ़्लो में एक बेहतरीन जोड़ है जिससे आपको यह प्राप्त होता है: +Install the [GraphQL VS Code extension](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) to unlock: - सिंटैक्स हाइलाइटिंग - ऑटो-कंप्लीट सुझाव @@ -472,11 +483,11 @@ fragment VoteWithPoll on Vote { - निबंध - फ्रैगमेंट्स और इनपुट टाइप्स के लिए परिभाषा पर जाएं। -यदि आप graphql-eslint का उपयोग कर रहे हैं, तो [ESLint VSCode एक्सटेंशन](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) आपके कोड में त्रुटियों और चेतावनियों को इनलाइन सही तरीके से देखने के लिए आवश्यक है। +If you are using `graphql-eslint`, use the [ESLint VS Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to visualize errors and warnings inlined in your code correctly. -**WebStorm/Intellij और GraphQL** +2. WebStorm/Intellij and GraphQL -[JS GraphQL प्लगइन](https://plugins.jetbrains.com/plugin/8097-graphql/) आपके GraphQL के साथ काम करने के अनुभव को काफी बेहतर बनाएगा, जिससे आपको निम्नलिखित सुविधाएँ मिलेंगी: +Install the [JS GraphQL plugin](https://plugins.jetbrains.com/plugin/8097-graphql/). It significantly improves the experience of working with GraphQL by providing: - सिंटैक्स हाइलाइटिंग - ऑटो-कंप्लीट सुझाव From 1cfe4e0013683a035af2f34bbc0b21b3f57985ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:01 -0400 Subject: [PATCH 1161/1709] New translations graphql-api.mdx (Romanian) --- .../ro/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx index 445413c1d969..0da4d012df07 100644 --- a/website/src/pages/ro/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ro/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Description | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Description | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From d7ba7a668b1e340b827b22e89152da7c984a6d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:04 -0400 Subject: [PATCH 1162/1709] New translations graphql-api.mdx (French) --- .../fr/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx index 0e7fd084ee3d..28a3f51074fc 100644 --- a/website/src/pages/fr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/fr/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: API GraphQL Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## Qu'est-ce que GraphQL ? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) est un langage d'interrogation pour les API et un moteur d'exécution pour l'exécution de ces requêtes avec vos données existantes. Le graphe utilise GraphQL pour interroger les subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Requêtes avec GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note : `query` n'a pas besoin d'être inclus au début de la requête `graphql` lors de l'utilisation de The Graph. +### Single Entity Queries Example -Requête pour une seule entité `Token` définie dans votre schéma : +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Requête pour une seule entité `Token` définie dans votre schéma : } ``` -> Note : Lors de l'interrogation d'une seule entité, le champ `id` est obligatoire et doit être écrit sous forme de chaîne de caractères. +> Note: Single entity queries require the `id` parameter as a string. -Interroge toutes les entités `Token` : +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Interroge toutes les entités `Token` : } ``` -### Tri +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Utilisez le paramètre `orderBy` pour trier les données en fonction d'un attribut spécifique. -- Utilisez `orderDirection` pour spécifier la direction du tri, `asc` pour ascendant ou `desc` pour descendant. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Exemple +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Depuis Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), les entités peuvent être triées sur la base des entités imbriquées. - -L'exemple suivant montre des jetons triés par le nom de leur propriétaire : +#### Nested Entity Sorting Example ```graphql { @@ -93,20 +91,18 @@ L'exemple suivant montre des jetons triés par le nom de leur propriétaire : } ``` -> Actuellement, vous pouvez trier par type `String` ou `ID` à "un" niveau de profondeur sur les champs `@entity` et `@derivedFrom`. Malheureusement, le [tri par interfaces sur des entités d'un niveau de profondeur] (https://github.com/graphprotocol/graph-node/pull/4058), le tri par champs qui sont des tableaux et des entités imbriquées n'est pas encore prit en charge. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -Lors de l'interrogation d'une collection, il est préférable de : +When querying a collection, it is best to: - Utilisez le paramètre `first` pour paginer à partir du début de la collection. - L'ordre de tri par défaut est le tri par `ID` dans l'ordre alphanumérique croissant, **non** par heure de création. - Utilisez le paramètre `skip` pour sauter des entités et paginer. Par exemple, `first:100` affiche les 100 premières entités et `first:100, skip:100` affiche les 100 entités suivantes. - Évitez d'utiliser les valeurs `skip` dans les requêtes car elles sont généralement peu performantes. Pour récupérer un grand nombre d'éléments, il est préférable de parcourir les entités en fonction d'un attribut, comme indiqué dans l'exemple précédent. -#### Example Using `first` - -Interroger les 10 premiers tokens : +#### Standard Pagination Example ```graphql { @@ -117,11 +113,7 @@ Interroger les 10 premiers tokens : } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Interroger 10 entités `Token`, décalées de 10 places par rapport au début de la collection : +#### Offset Pagination Example ```graphql { @@ -132,9 +124,7 @@ Interroger 10 entités `Token`, décalées de 10 places par rapport au début de } ``` -#### Example Using `first` and `id_ge` - -Si un client a besoin de récupérer un grand nombre d'entités, il est plus performant de baser les requêtes sur un attribut et de filtrer par cet attribut. Par exemple, un client pourrait récupérer un grand nombre de jetons en utilisant cette requête : +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -145,16 +135,11 @@ query manyTokens($lastID: String) { } ``` -La première fois, il enverra la requête avec `lastID = ""`, et pour les requêtes suivantes, il fixera `lastID` à l'attribut `id` de la dernière entité dans la requête précédente. Cette approche est nettement plus performante que l'utilisation de valeurs `skip` croissantes. - ### Filtration -- Vous pouvez utiliser le paramètre `where` dans vos requêtes pour filtrer les différentes propriétés. -- Vous pouvez filtrer sur plusieurs valeurs dans le paramètre `where`. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -168,9 +153,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -Vous pouvez utiliser des suffixes comme `_gt`, `_lte` pour comparer les valeurs : - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -182,11 +165,7 @@ Vous pouvez utiliser des suffixes comme `_gt`, `_lte` pour comparer les valeurs } ``` -#### Block Filtering - -Vous pouvez également filtrer les entités qui ont été mises à jour dans ou après un bloc spécifié avec `_change_block(number_gte : Int)`. - -Cela peut être utile si vous cherchez à récupérer uniquement les entités qui ont changé, par exemple depuis la dernière fois que vous avez interrogé. Ou encore, elle peut être utile pour étudier ou déboguer la façon dont les entités changent dans votre subgraph (si elle est combinée à un filtre de bloc, vous pouvez isoler uniquement les entités qui ont changé dans un bloc spécifique). +#### Block-based Filtering Example ```graphql { @@ -198,11 +177,7 @@ Cela peut être utile si vous cherchez à récupérer uniquement les entités qu } ``` -#### Nested Entity Filtering - -Le filtrage sur la base d'entités imbriquées est possible dans les champs avec le suffixe `_`. - -Cela peut être utile si vous souhaitez récupérer uniquement les entités dont les entités au niveau enfant remplissent les conditions fournies. +#### Nested Entity Filtering Example ```graphql { @@ -216,11 +191,9 @@ Cela peut être utile si vous souhaitez récupérer uniquement les entités dont } ``` -### Logical Operators +#### Logical Operators -Depuis Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), vous pouvez regrouper plusieurs paramètres dans le même argument `where` en utilisant les opérateurs `and` ou `or` pour filtrer les résultats en fonction de plusieurs critères. - -#### Using `and` Operator +##### AND Operations Example L'exemple suivant filtre les défis avec `outcome` `succeeded` et `number` supérieur ou égal à `100`. @@ -236,27 +209,11 @@ L'exemple suivant filtre les défis avec `outcome` `succeeded` et `number` supé } ``` -> **Sucre syntaxique:** Vous pouvez simplifier la requête ci-dessus en supprimant l'opérateur \`and\`\` et en passant une sous-expression séparée par des virgules. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -L'exemple suivant filtre les défis avec `outcome` `succeeded` ou `number` supérieur ou égal à `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -266,52 +223,36 @@ L'exemple suivant filtre les défis avec `outcome` `succeeded` ou `number` supé } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Tous les filtres - -Liste complète des suffixes de paramètres : +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Veuillez noter que certains suffixes ne sont supportés que pour des types spécifiques. Par exemple, `Boolean` ne supporte que `_not`, `_in`, et `_not_in`, mais `_` n'est disponible que pour les types objet et interface. - -En outre, les filtres globaux suivants sont disponibles en tant que partie de l'argument `where` : +Global filter parameter: ```graphql _change_block(numéro_gte : Int) ``` -### Time-travel Queries +### Time-travel Queries Example -Vous pouvez interroger l'état de vos entités non seulement pour le dernier bloc, ce qui est le cas par défaut, mais aussi pour un bloc arbitraire dans le passé. Le bloc auquel une requête doit se produire peut être spécifié soit par son numéro de bloc, soit par son hash de bloc, en incluant un argument `block` dans les champs de niveau supérieur des requêtes. +Queries support historical state retrieval using the `block` parameter: -Le résultat d'une telle requête ne changera pas au fil du temps, c'est-à-dire qu'une requête portant sur un certain bloc passé renverra le même résultat quel que soit le moment où elle est exécutée, à l'exception d'une requête portant sur un bloc très proche de la tête de la chaîne, dont le résultat pourrait changer s'il s'avérait que ce bloc ne figurait **pas** sur la chaîne principale et que la chaîne était réorganisée. Une fois qu'un bloc peut être considéré comme définitif, le résultat de la requête ne changera pas. +- `number`: Integer block number +- `hash`: String block hash > Remarque : l'implémentation actuelle est encore sujette à certaines limitations qui pourraient violer ces garanties. L'implémentation ne permet pas toujours de déterminer si un bloc donné n'est pas du tout sur la chaîne principale ou si le résultat d'une requête par bloc pour un bloc qui n'est pas encore considéré comme final peut être influencé par une réorganisation du bloc qui a lieu en même temps que la requête. Elles n'affectent pas les résultats des requêtes par hash de bloc lorsque le bloc est final et que l'on sait qu'il se trouve sur la chaîne principale. [Ce numéro](https://github.com/graphprotocol/graph-node/issues/1405) explique ces limitations en détail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -325,7 +266,7 @@ Le résultat d'une telle requête ne changera pas au fil du temps, c'est-à-dire } ``` -Cette requête renverra les entités `Challenge` et les entités `Application` qui leur sont associées, telles qu'elles existaient directement après le traitement du bloc numéro 8 000 000. +#### Block Hash Query Example ```graphql { @@ -339,28 +280,26 @@ Cette requête renverra les entités `Challenge` et les entités `Application` q } ``` -Cette requête renverra les entités `Challenge`, et leurs entités `Application` associées, telles qu'elles existaient directement après le traitement du bloc avec le hash donné. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbole | Opérateur | Description | -| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Pour combiner plusieurs termes de recherche dans un filtre pour les entités incluant tous les termes fournis | -| `\|` | `Or` | Les requêtes comportant plusieurs termes de recherche séparés par l'opérateur ou renverront toutes les entités correspondant à l'un des termes fournis | -| `<->` | `Follow by` | Spécifiez la distance entre deux mots. | -| `:*` | `Prefix` | Utilisez le terme de recherche de préfixe pour trouver les mots dont le préfixe correspond (2 caractères requis.) | +| Operator | Symbole | Description | +| --------- | ------- | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -371,7 +310,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -384,7 +323,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -397,15 +336,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Définition de schéma -Graph Node met en œuvre une validation [basée sur les spécifications](https://spec.graphql.org/October2021/#sec-Validation) des requêtes GraphQL qu'il reçoit à l'aide de [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), qui est basée sur l'implémentation de référence [graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Les requêtes qui échouent à une règle de validation sont accompagnées d'une erreur standard - consultez les [spécifications GraphQL](https://spec.graphql.org/October2021/#sec-Validation) pour en savoir plus. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Métadonnées du Subgraph +### Subgraph Metadata Example -Tous les subgraphs ont un objet `_Meta_` auto-généré, qui permet d'accéder aux métadonnées du subgraph. Cet objet peut être interrogé comme suit : +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -419,14 +362,49 @@ Tous les subgraphs ont un objet `_Meta_` auto-généré, qui permet d'accéder a } ``` -Si un bloc est fourni, les métadonnées sont celles de ce bloc, sinon le dernier bloc indexé est utilisé. S'il est fourni, le bloc doit être postérieur au bloc de départ du subgraph et inférieur ou égal au dernier bloc indexé. - -`deployment` est un ID unique, correspondant au IPFS CID du fichier `subgraph.yaml`. - -`block` fournit des informations sur le dernier bloc (en tenant compte des contraintes de bloc passées à `_meta`) : +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Opérateur | Description | Exemple | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash : le hash du bloc -- number: the block number -- horodatage : l'horodatage du bloc, s'il est disponible (pour l'instant, cette information n'est disponible que pour les subgraphs indexant les réseaux EVM) +### Validation -`hasIndexingErrors` est un booléen indiquant si le subgraph a rencontré des erreurs d'indexation à un moment donné +Graph Node met en œuvre une validation [basée sur les spécifications](https://spec.graphql.org/October2021/#sec-Validation) des requêtes GraphQL qu'il reçoit à l'aide de [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), qui est basée sur l'implémentation de référence [graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Les requêtes qui échouent à une règle de validation sont accompagnées d'une erreur standard - consultez les [spécifications GraphQL](https://spec.graphql.org/October2021/#sec-Validation) pour en savoir plus. From f46e000a568a620d7e69eb06024382eb2b343ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:07 -0400 Subject: [PATCH 1163/1709] New translations graphql-api.mdx (Spanish) --- .../es/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/es/subgraphs/querying/graphql-api.mdx b/website/src/pages/es/subgraphs/querying/graphql-api.mdx index 465a7503c0e6..a52cfaed18ca 100644 --- a/website/src/pages/es/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/es/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: API GraphQL Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Clasificación +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Ejemplo +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Paginación +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Consulta los primeros 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Consulta los primeros 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtrado -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -Esto puede ser útil si estás buscando obtener solo entidades cuyas entidades de nivel inicial cumplan con las condiciones proporcionadas. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Esto puede ser útil si estás buscando obtener solo entidades cuyas entidades d } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Todos los filtros - -Lista completa de sufijos de parámetros: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Símbolo | Operador | Descripción | -| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Para combinar varios términos de búsqueda en un filtro para entidades que incluyen todos los términos proporcionados | -| `\|` | `Or` | Las consultas con varios términos de búsqueda separados por o el operador devolverá todas las entidades que coincidan con cualquiera de los términos proporcionados | -| `<->` | `Follow by` | Especifica la distancia entre dos palabras. | -| `:*` | `Prefix` | Utilice el término de búsqueda del prefijo para encontrar palabras cuyo prefijo coincida (se requieren 2 caracteres.) | +| Operator | Símbolo | Description | +| --------- | ------- | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validación +### Definición de esquema -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Metadatos del subgrafo +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operador | Descripción | Ejemplo | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: el hash del bloque -- número: el número de bloque -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validación -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 574d2f752d6d39a5e2eb3f122564774ac15e53dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:10 -0400 Subject: [PATCH 1164/1709] New translations graphql-api.mdx (Arabic) --- .../ar/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx index 4b56dbd4e5ae..40817616c2dc 100644 --- a/website/src/pages/ar/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ar/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| رمز | عامل التشغيل | الوصف | -| ----- | ------------ | --------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | لدمج عبارات بحث متعددة في فلتر للكيانات التي تتضمن جميع العبارات المتوفرة | -| `\|` | `Or` | الاستعلامات التي تحتوي على عبارات بحث متعددة مفصولة بواسطة عامل التشغيل or ستعيد جميع الكيانات المتطابقة من أي عبارة متوفرة | -| `<->` | `Follow by` | يحدد المسافة بين كلمتين. | -| `:*` | `Prefix` | يستخدم عبارة البحث prefix للعثور على الكلمات التي تتطابق بادئتها (مطلوب حرفان.) | +| Operator | رمز | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### تعريف المخطط -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| عامل التشغيل | الوصف | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 4d4c24fb015013acd8c49368bcacdf0506d1f3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:13 -0400 Subject: [PATCH 1165/1709] New translations graphql-api.mdx (Czech) --- .../cs/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx index 23d72110f90e..6fc03e0856a8 100644 --- a/website/src/pages/cs/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/cs/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Třídění +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Příklad +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Stránkování +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Dotaz na prvních 10 tokenů: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Dotaz na prvních 10 tokenů: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtrování -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -To může být užitečné, pokud chcete načíst pouze entity, jejichž entity podřízené úrovně splňují zadané podmínky. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ To může být užitečné, pokud chcete načíst pouze entity, jejichž entity } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Všechny filtry - -Úplný seznam přípon parametrů: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operátor | Popis | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Pro kombinaci více vyhledávacích výrazů do filtru pro entity, které obsahují všechny zadané výrazy | -| `\|` | `Or` | Dotazy s více hledanými výrazy oddělenými operátorem nebo vrátí všechny entity, které odpovídají některému z uvedených výrazů | -| `<->` | `Follow by` | Zadejte vzdálenost mezi dvěma slovy. | -| `:*` | `Prefix` | Pomocí předponového výrazu vyhledejte slova, jejichž předpona se shoduje (vyžadovány 2 znaky) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validace +### Definice schématu -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Metadata podgrafů +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operátor | Popis | Příklad | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: hash bloku -- číslo: číslo bloku -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validace -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 0dd0403516bc1c210ebba5a78fc840de641e5b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:16 -0400 Subject: [PATCH 1166/1709] New translations graphql-api.mdx (German) --- .../de/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/de/subgraphs/querying/graphql-api.mdx b/website/src/pages/de/subgraphs/querying/graphql-api.mdx index 937deede72cd..7179e82c80cf 100644 --- a/website/src/pages/de/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/de/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL-API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## Was ist GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL] (https://graphql.org/learn/) ist eine Abfragesprache für APIs und eine Laufzeitumgebung für die Ausführung dieser Abfragen mit Ihren vorhandenen Daten. The Graph verwendet GraphQL zur Abfrage von Subgraphen. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Abfragen mit GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Hinweis: Bei der Verwendung von The Graph muss `query` nicht am Anfang der `graphql`-Abfrage stehen. +### Single Entity Queries Example -Abfrage nach einer einzelnen, in Ihrem Schema definierten Entität `Token`: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Abfrage nach einer einzelnen, in Ihrem Schema definierten Entität `Token`: } ``` -> Hinweis: Bei der Abfrage einer einzelnen Entität ist das Feld `id` erforderlich und muss als String geschrieben werden. +> Note: Single entity queries require the `id` parameter as a string. -Abfrage aller `Token`-Entitäten: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Abfrage aller `Token`-Entitäten: } ``` -### Sortierung +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- den Parameter `orderBy` verwenden, um nach einem bestimmten Attribut zu sortieren. -- `orderDirection` verwenden, um die Sortierrichtung anzugeben, `asc` für aufsteigend oder `desc` für absteigend. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Beispiel +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Ab Graph Node [`v0.30.0`] (https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) können Entitäten auf der Basis von verschachtelten Entitäten sortiert werden. - -Im folgenden Beispiel werden die Token nach dem Namen ihres Besitzers sortiert: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ Im folgenden Beispiel werden die Token nach dem Namen ihres Besitzers sortiert: } ``` -> Derzeit können Sie nach den Typen `String` oder `ID` auf den Feldern `@entity` und `@derivedFrom` sortieren. Leider wird die [Sortierung nach Schnittstellen auf Entitäten mit einer Tiefe von einer Ebene] (https://github.com/graphprotocol/graph-node/pull/4058), die Sortierung nach Feldern, die Arrays und verschachtelte Entitäten sind, noch nicht unterstützt. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -Wenn Sie eine Sammlung abfragen, ist es am besten, dies zu tun: +When querying a collection, it is best to: - Verwenden Sie den Parameter `first`, um vom Anfang der Sammlung an zu paginieren. - Die Standardsortierung erfolgt nach `ID` in aufsteigender alphanumerischer Reihenfolge, **nicht** nach Erstellungszeit. - Verwenden Sie den Parameter `skip`, um Entitäten zu überspringen und zu paginieren. Zum Beispiel zeigt `first:100` die ersten 100 Entitäten und `first:100, skip:100` zeigt die nächsten 100 Entitäten. - Vermeiden Sie die Verwendung von `skip`-Werten in Abfragen, da diese im Allgemeinen schlecht funktionieren. Um eine große Anzahl von Elementen abzurufen, ist es am besten, die Entitäten auf der Grundlage eines Attributs zu durchblättern, wie im obigen Beispiel gezeigt. -#### Example Using `first` - -Die Abfrage für die ersten 10 Token: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Die Abfrage für die ersten 10 Token: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Abfrage von 10 „Token“-Entitäten, versetzt um 10 Stellen vom Beginn der Sammlung: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Abfrage von 10 „Token“-Entitäten, versetzt um 10 Stellen vom Beginn der Sam } ``` -#### Example Using `first` and `id_ge` - -Wenn ein Client eine große Anzahl von Entitäten abrufen muss, ist es leistungsfähiger, Abfragen auf ein Attribut zu stützen und nach diesem Attribut zu filtern. Zum Beispiel könnte ein Client mit dieser Abfrage eine große Anzahl von Token abrufen: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -Beim ersten Mal würde es die Abfrage mit `lastID = „“` senden, und bei nachfolgenden Anfragen würde es `lastID` auf das Attribut `id` der letzten Entität in der vorherigen Anfrage setzen. Dieser Ansatz ist wesentlich leistungsfähiger als die Verwendung steigender `skip`-Werte. - ### Filtration -- Sie können den Parameter `where` in Ihren Abfragen verwenden, um nach verschiedenen Eigenschaften zu filtern. -- Sie können nach mehreren Werten innerhalb des Parameters `where` filtern. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -Sie können Suffixe wie `_gt`, `_lte` für den Wertevergleich verwenden: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Sie können Suffixe wie `_gt`, `_lte` für den Wertevergleich verwenden: } ``` -#### Block Filtering - -Sie können auch Entitäten filtern, die in oder nach einem bestimmten Block mit `_change_block(number_gte: Int)` aktualisiert wurden. - -Dies kann nützlich sein, wenn Sie nur Entitäten abrufen möchten, die sich geändert haben, z. B. seit der letzten Abfrage. Oder es kann nützlich sein, um zu untersuchen oder zu debuggen, wie sich Entitäten in Ihrem Subgraphen ändern (wenn Sie dies mit einem Blockfilter kombinieren, können Sie nur Entitäten isolieren, die sich in einem bestimmten Block geändert haben). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ Dies kann nützlich sein, wenn Sie nur Entitäten abrufen möchten, die sich ge } ``` -#### Nested Entity Filtering - -Die Filterung nach verschachtelten Entitäten ist in den Feldern mit dem Suffix `_`möglich. - -Dies kann nützlich sein, wenn Sie nur die Entitäten abrufen möchten, deren untergeordnete Entitäten die angegebenen Bedingungen erfüllen. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Dies kann nützlich sein, wenn Sie nur die Entitäten abrufen möchten, deren un } ``` -### Logical Operators +#### Logical Operators -Seit Graph Node [`v0.30.0`] (https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) können Sie mehrere Parameter im selben `where`-Argument gruppieren, indem Sie die `und`- oder `oder`-Operatoren verwenden, um Ergebnisse nach mehr als einem Kriterium zu filtern. - -#### Using `and` Operator +##### AND Operations Example Das folgende Beispiel filtert nach Challenges mit `outcome` `succeeded` und `number` größer als oder gleich `100`. @@ -234,27 +207,11 @@ Das folgende Beispiel filtert nach Challenges mit `outcome` `succeeded` und `num } ``` -> **Syntaktischer Zucker:** Sie können die obige Abfrage vereinfachen, indem Sie den „und“-Operator entfernen und einen durch Kommata getrennten Unterausdruck übergeben. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -Das folgende Beispiel filtert nach Herausforderungen mit `outcome` `succeeded` oder `number` größer oder gleich `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ Das folgende Beispiel filtert nach Herausforderungen mit `outcome` `succeeded` o } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Alle Filter - -Vollständige Liste der Parameter-Suffixe: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Bitte beachten Sie, dass einige Suffixe nur für bestimmte Typen unterstützt werden. So unterstützt `Boolean` nur `_not`, `_in` und `_not_in`, aber `_` ist nur für Objekt- und Schnittstellentypen verfügbar. - -Darüber hinaus sind die folgenden globalen Filter als Teil des Arguments `where` verfügbar: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -Sie können den Zustand Ihrer Entitäten nicht nur für den letzten Block abfragen, was der Standard ist, sondern auch für einen beliebigen Block in der Vergangenheit. Der Block, zu dem eine Abfrage erfolgen soll, kann entweder durch seine Blocknummer oder seinen Block-Hash angegeben werden, indem ein `block`-Argument in die Toplevel-Felder von Abfragen aufgenommen wird. +Queries support historical state retrieval using the `block` parameter: -Das Ergebnis einer solchen Abfrage wird sich im Laufe der Zeit nicht ändern, d.h. die Abfrage eines bestimmten vergangenen Blocks wird das gleiche Ergebnis liefern, egal wann sie ausgeführt wird, mit der Ausnahme, dass sich das Ergebnis bei einer Abfrage eines Blocks, der sehr nahe am Kopf der Kette liegt, ändern kann, wenn sich herausstellt, dass dieser Block **nicht** in der Hauptkette ist und die Kette umorganisiert wird. Sobald ein Block als endgültig betrachtet werden kann, wird sich das Ergebnis der Abfrage nicht mehr ändern. +- `number`: Integer block number +- `hash`: String block hash > Hinweis: Die derzeitige Implementierung unterliegt noch bestimmten Beschränkungen, die diese Garantien verletzen könnten. Die Implementierung kann nicht immer erkennen, dass ein bestimmter Block-Hash überhaupt nicht in der Hauptkette ist, oder ob ein Abfrageergebnis durch einen Block-Hash für einen Block, der noch nicht als endgültig gilt, durch eine gleichzeitig mit der Abfrage laufende Blockumstrukturierung beeinflusst werden könnte. Sie haben keinen Einfluss auf die Ergebnisse von Abfragen per Block-Hash, wenn der Block endgültig ist und sich bekanntermaßen in der Hauptkette befindet. In [Diese Ausgabe] (https://github.com/graphprotocol/graph-node/issues/1405) werden diese Einschränkungen im Detail erläutert. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ Das Ergebnis einer solchen Abfrage wird sich im Laufe der Zeit nicht ändern, d. } ``` -Diese Abfrage gibt die `Challenge`-Entitäten und die zugehörigen `Application`-Entitäten so zurück, wie sie unmittelbar nach der Verarbeitung von Block Nummer 8.000.000 bestanden. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ Diese Abfrage gibt die `Challenge`-Entitäten und die zugehörigen `Application` } ``` -Diese Abfrage gibt `Challenge`-Entitäten und die zugehörigen `Application`-Entitäten zurück, wie sie unmittelbar nach der Verarbeitung des Blocks mit dem angegebenen Hash vorhanden waren. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Beschreibung | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Zum Kombinieren mehrerer Suchbegriffe zu einem Filter für Entitäten, die alle bereitgestellten Begriffe enthalten | -| `\|` | `Or` | Abfragen mit mehreren durch den Operator or getrennten Suchbegriffen geben alle Entitäten mit einer Übereinstimmung mit einem der bereitgestellten Begriffe zurück | -| `<->` | `Follow by` | Geben Sie den Abstand zwischen zwei Wörtern an. | -| `:*` | `Prefix` | Verwenden Sie den Präfix-Suchbegriff, um Wörter zu finden, deren Präfix übereinstimmt (2 Zeichen erforderlich) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validierung +### Schema-Definition -Graph Node implementiert die [spezifikationsbasierte](https://spec.graphql.org/October2021/#sec-Validation) Validierung der empfangenen GraphQL-Abfragen mit [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), die auf der [graphql-js-Referenzimplementierung](https://github.com/graphql/graphql-js/tree/main/src/validation) basiert. Abfragen, die eine Validierungsregel nicht erfüllen, werden mit einem Standardfehler angezeigt - besuchen Sie die [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation), um mehr zu erfahren. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph-Metadaten +### Subgraph Metadata Example -Alle Subgraphen haben ein automatisch generiertes `_Meta_`-Objekt, das Zugriff auf die Metadaten des Subgraphen bietet. Dieses kann wie folgt abgefragt werden: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ Alle Subgraphen haben ein automatisch generiertes `_Meta_`-Objekt, das Zugriff a } ``` -Wenn ein Block angegeben wird, gelten die Metadaten ab diesem Block, andernfalls wird der zuletzt indizierte Block verwendet. Falls angegeben, muss der Block nach dem Startblock des Subgraphen liegen und kleiner oder gleich dem zuletzt indizierten Block sein. - -`deployment` ist eine eindeutige ID, die der IPFS CID der Datei `subgraph.yaml` entspricht. - -`block` liefert Informationen über den letzten Block (unter Berücksichtigung aller an `_meta` übergebenen Blockeinschränkungen): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Beschreibung | Beispiel | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Anmerkungen + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: der Hash des Blocks -- number: die Blocknummer -- timestamp: der Zeitstempel des Blocks, falls verfügbar (dies ist derzeit nur für Subgraphen verfügbar, die EVM-Netzwerke indizieren) +### Validierung -hasIndexingErrors“ ist ein boolescher Wert, der angibt, ob der Subgraph in einem vergangenen Block auf Indizierungsfehler gestoßen ist. +Graph Node implementiert die [spezifikationsbasierte](https://spec.graphql.org/October2021/#sec-Validation) Validierung der empfangenen GraphQL-Abfragen mit [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), die auf der [graphql-js-Referenzimplementierung](https://github.com/graphql/graphql-js/tree/main/src/validation) basiert. Abfragen, die eine Validierungsregel nicht erfüllen, werden mit einem Standardfehler angezeigt - besuchen Sie die [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation), um mehr zu erfahren. From e3fadd62c3e6a2543b982a19fc607f3d589d47a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:19 -0400 Subject: [PATCH 1167/1709] New translations graphql-api.mdx (Italian) --- .../it/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/it/subgraphs/querying/graphql-api.mdx b/website/src/pages/it/subgraphs/querying/graphql-api.mdx index f8856cae7dbb..9e8a3dc6e6bf 100644 --- a/website/src/pages/it/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/it/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: API GraphQL Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Ordinamento +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Esempio +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Impaginazione +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Eseguire query di primi 10 token: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Eseguire query di primi 10 token: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtraggio -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -Questo può essere utile se si vuole recuperare solo le entità il cui livello di figlio soddisfa le condizioni fornite. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Questo può essere utile se si vuole recuperare solo le entità il cui livello d } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Tutti i filtri - -Elenco completo dei suffissi dei parametri: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Simbolo | Operatore | Descrizione | -| ------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Per combinare più termini di ricerca in un filtro per le entità che includono tutti i termini forniti | -| `\|` | `Or` | Le query con più termini di ricerca separati dall'operatore Or restituiranno tutte le entità con una corrispondenza tra i termini forniti | -| `<->` | `Follow by` | Specifica la distanza tra due parole. | -| `:*` | `Prefix` | Utilizzare il termine di ricerca del prefisso per trovare le parole il cui prefisso corrisponde (sono richiesti 2 caratteri.) | +| Operator | Simbolo | Description | +| --------- | ------- | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validazione +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Metadati del Subgraph +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operatore | Descrizione | Esempio | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: l'hash del blocco -- numero: il numero del blocco -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validazione -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From e47d8c9391f80faa1ba838a6438239693b621fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:22 -0400 Subject: [PATCH 1168/1709] New translations graphql-api.mdx (Japanese) --- .../ja/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx index 9ac6aaa75c83..e356e2efe616 100644 --- a/website/src/pages/ja/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ja/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### 並べ替え +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### 例 +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### ページネーション +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -最初の 10 個のトークンを照会します。 +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ When querying a collection, it's best to: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### フィルタリング -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -これは、子レベルのエンティティが指定された条件を満たすエンティティのみをフェッチする場合に役立ちます。 +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Filtering on the basis of nested entities is possible in the fields with the `_` } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### すべてのフィルター - -パラメータのサフィックスの全リスト: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| シンボル | オペレーター | 説明書き | -| ----- | ----------- | --------------------------------------------------------- | -| `&` | `And` | 複数の検索語を組み合わせて、指定したすべての検索語を含むエンティティをフィルタリングします。 | -| `\|` | `Or` | 複数の検索語をオペレーターで区切って検索すると、指定した語のいずれかにマッチするすべてのエンティティが返されます。 | -| `<->` | `Follow by` | 2 つの単語の間の距離を指定します。 | -| `:*` | `Prefix` | プレフィックス検索語を使って、プレフィックスが一致する単語を検索します(2 文字必要) | +| Operator | シンボル | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### 認証 +### スキーマ定義 -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### サブグラフ メタデータ +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| オペレーター | 説明書き | 例 | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: ブロックのハッシュ -- number: ブロック番号 -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### 認証 -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From a79a0d72af6c63a62f3131da66a570dbd7525430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:25 -0400 Subject: [PATCH 1169/1709] New translations graphql-api.mdx (Korean) --- .../ko/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx index 445413c1d969..0da4d012df07 100644 --- a/website/src/pages/ko/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ko/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Description | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Description | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From ce818eeedf56298a682d128f019e20413ee5bd3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:28 -0400 Subject: [PATCH 1170/1709] New translations graphql-api.mdx (Dutch) --- .../nl/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx index 445413c1d969..0da4d012df07 100644 --- a/website/src/pages/nl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/nl/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Description | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Description | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From e980a8c6be345c3fcd7cc6228cbc7699c834e4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:30 -0400 Subject: [PATCH 1171/1709] New translations graphql-api.mdx (Polish) --- .../pl/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx index 445413c1d969..0da4d012df07 100644 --- a/website/src/pages/pl/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pl/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Description | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Description | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 3f4ca82fe9c646036dc350bd2a5cc72e3333512a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:33 -0400 Subject: [PATCH 1172/1709] New translations graphql-api.mdx (Portuguese) --- .../pt/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx index fbc3a86b5b33..00b905aa7888 100644 --- a/website/src/pages/pt/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/pt/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: API GraphQL Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## O Que é a GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -A [GraphQL](https://graphql.org/learn/) é uma linguagem de queries para APIs e um sistema de tempo de execução (runtime) para executar esses queries, com os seus dados já existentes. O The Graph usa a GraphQL para fazer queries em subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ A [GraphQL](https://graphql.org/learn/) é uma linguagem de queries para APIs e - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries com a GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Observação: `query` não precisa ser incluído no topo do query `graphql` enquanto usar o The Graph. +### Single Entity Queries Example -Query para uma entidade `Token` definida no seu schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query para uma entidade `Token` definida no seu schema: } ``` -> Nota: Ao fazer um query para uma única entidade, é obrigatório um campo `id`; este deve ser escrito como string. +> Note: Single entity queries require the `id` parameter as a string. -Faça um query de todas as entidades `Token`: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Faça um query de todas as entidades `Token`: } ``` -### Organização +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use o parâmetro `orderBy` para organizar os resultados por atributos específicos. -- Use `orderDirection` para especificar a direção da organização; `asc` para ordem crescente ou `desc` para decrescente. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Exemplo +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Com o lançamento da versão [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) do Graph Node, as entidades podem ser organizadas com base nas entidades aninhadas. - -No seguinte exemplo, organizamos os tokens pelo nome do proprietário: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ No seguinte exemplo, organizamos os tokens pelo nome do proprietário: } ``` -> Atualmente, pode-se organizar por tipos `String` or `ID` de nível único em campos `@entity` e `@derivedFrom`. Infelizmente, ainda não há apoio para [organização por interfaces em entidades de nível único](https://github.com/graphprotocol/graph-node/pull/4058), que é a organização por campos que são arranjos e entidades aninhadas. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Paginação +### Pagination Example -Quando fizer um query de uma coleção, recomendamos: +When querying a collection, it is best to: - Usar o parâmetro `first` para paginar a partir do início da coleção. - A ordem padrão de organização é por `ID` em ordem alfanumérica crescente, **não** por data e hora de criação. - Usar o parâmetro `skip` para pular entidades e paginar. Por exemplo: `first:100` mostra as primeiras 100 entidades e `first:100, skip:100` mostra as próximas 100. - Evitar usar valores `skip` em queries, já que o desempenho destes normalmente não é bom. Para resgatar um grande volume de itens, recomendamos paginar entidades com base num atributo, conforme demonstrado no exemplo acima. -#### Example Using `first` - -Consulte os 10 primeiros tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Consulte os 10 primeiros tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Faça query de 10 entidades Token, deslocadas por 10 posições do começo da coleção: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Faça query de 10 entidades Token, deslocadas por 10 posições do começo da co } ``` -#### Example Using `first` and `id_ge` - -Se um cliente precisar retirar um grande volume de entidades, é muito mais eficiente basear queries num atributo e filtrar pelo mesmo. Por exemplo, um cliente retiraria um número grande de tokens com este query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -Na primeira vez, ele enviaria o query com `lastID = ""`, e nas solicitações seguintes, configuraria `lastID` no atributo `id` da última entidade no pedido anterior. Este método será mais eficiente do que usar valores `skip` crescentes. - ### Filtragem -- O parâmetro `where` pode ser usado nos seus queries para filtrar propriedades diferentes. -- Vários valores podem ser filtrados dentro do parâmetro `where`. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -É possível usar sufixos como `_gt`, ou `_lte`, para comparar valores: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Block Filtering - -Também dá para filtrar entidades atualizadas dentro de, ou depois de, um bloco específico com `_change_block(number_gte: Int)`. - -Isto pode servir caso o seu plano seja retirar apenas entidades que mudaram, por exemplo, desde a última vez que você pesquisou. Também pode ser bom investigar ou debugar como as entidades mudam no seu subgraph (se combinado com um filtro de blocos, pode isolar apenas entidades que mudaram em um bloco específico). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ Isto pode servir caso o seu plano seja retirar apenas entidades que mudaram, por } ``` -#### Nested Entity Filtering - -É possível usar filtros com base em entidades aninhadas nos campos com o sufixo `_`. - -Isto é bom caso mire retirar apenas entidades cujas entidades de nível-filho correspondem às condições requeridas. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Isto é bom caso mire retirar apenas entidades cujas entidades de nível-filho c } ``` -### Logical Operators +#### Logical Operators -Com o lançamento da versão [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) do Graph Node, é possível agrupar vários parâmetros no mesmo argumento `where`, com os operadores `and` ou `or`, para filtrar resultados com base em mais de um critério. - -#### Using `and` Operator +##### AND Operations Example O exemplo a seguir filtra por desafios com o `outcome` ("resultado") `succeeded` ("sucesso"), e `number` ("número") maior que ou igual a `100`. @@ -234,27 +207,11 @@ O exemplo a seguir filtra por desafios com o `outcome` ("resultado") `succeeded` } ``` -> **Açúcar sintático:** O query acima pode ser simplificado ao retirar o operador `and`, com o passe de uma sub-expressão separada por vírgulas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -O exemplo a seguir filtra desafios com o `outcome` `succeeded`, e o `number` maior que ou igual a `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ O exemplo a seguir filtra desafios com o `outcome` `succeeded`, e o `number` mai } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Todos os Filtros - -Lista completa de sufixos de parâmetro: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Perceba que alguns sufixos só tem apoio para tipos específicos. Por exemplo, o `Boolean` só apoia `_not`, `_in`, e `_not_in`, mas o `_` só está disponível para tipos de objeto e interface. - -Além disto, os seguintes filtros globais estão disponíveis como parte do argumento `where`: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -É possível solicitar o estado das suas entidades não só para o bloco mais recente, que é o padrão, mas também para um bloco arbitrário no passado. O bloco em que acontece um query pode ser especificado pelo seu número, ou pelo seu hash, ao incluir um argumento `block` nos campos de nível superior de query. +Queries support historical state retrieval using the `block` parameter: -O resultado de um query assim não mudará com o tempo; por exemplo, queries num certo bloco passado retornarão o mesmo resultado, independente de quando ele for executado. Exceto que, se fizer um query num bloco muito perto do topo da chain, o resultado pode mudar se aquele bloco acabar ausente da chain principal e a chain for reorganizada. Quando um bloco puder ser considerado final, o resultado do query não mudará. +- `number`: Integer block number +- `hash`: String block hash > Observação: a implementação atual ainda está sujeita a certas limitações que podem violar estas garantias. A implementação nem sempre percebe que um hash de bloco não está na chain principal, ou que um query por hash de bloco retorna um bloco que não pode ser considerado final, mas que pode ser influenciado por uma reorganização de bloco executada concorrente com a solicitação. Elas não afetam os resultados de queries por hash de bloco quando o bloco é final e tem sua presença conhecida na chain principal. [Este inquérito](https://github.com/graphprotocol/graph-node/issues/1405) explica estas limitações em detalhes. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ O resultado de um query assim não mudará com o tempo; por exemplo, queries num } ``` -Este query retornará entidades `Challenge` e as suas entidades `Application` associadas, já que existiram diretamente após processar o bloco de número 8.000.000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ Este query retornará entidades `Challenge` e as suas entidades `Application` as } ``` -Este query retornará entidades `Challenge` e as suas entidades `Application` associadas, já que existiram diretamente após processar o bloco com o hash indicado. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Símbolo | Operador | Descrição | -| ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Para combinar múltiplos termos de busca num filtro para entidades que incluem todos os termos fornecidos | -| `\|` | `Or` | Consultas com vários termos de busca separados pelo operador or retornarão todas as entidades com uma correspondência de qualquer termo providenciado | -| `<->` | `Follow by` | Especifica a distância entre duas palavras. | -| `:*` | `Prefix` | Use o prefixo para encontrar palavras que correspondem a tal prefixo (2 caracteres necessários.) | +| Operator | Símbolo | Description | +| --------- | ------- | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validação +### Definição de Schema -O Graph Node implementa validações [baseadas em especificação](https://spec.graphql.org/October2021/#sec-Validation) dos queries da GraphQL que recebe, através do [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules) — que tem base na [referência de implementação graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries que não aderem a uma regra de validação fazem isso com um erro comum — para saber mais, visite as [especificações da GraphQL](https://spec.graphql.org/October2021/#sec-Validation). +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Metadados de Subgraph +### Subgraph Metadata Example -Todos os subgraphs devem ter um objeto `_Meta_` gerado automaticamente, que permite acesso aos metadados do subgraph. Isto pode ser solicitado num query como o query mostrado a seguir: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ Todos os subgraphs devem ter um objeto `_Meta_` gerado automaticamente, que perm } ``` -Se um bloco for fornecido, os metadados começam naquele bloco; e se não, é usado o último indexado. Se providenciado, o bloco deve ser após o inicial do subgraph, e menor ou igual ao bloco indexado mais recentemente. - -`deployment` é uma ID única, correspondente ao CID PIFS do arquivo `subgraph.yaml`. - -O `block` fornece informações sobre o bloco mais recente (em consideração a quaisquer limites de bloco passados ao `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operador | Descrição | Exemplo | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notas + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: o hash do bloco -- number: o número do bloco -- timestamp: a hora do bloco, se disponível (disponível atualmente apenas para subgraphs que indexam redes EVM) +### Validação -`hasIndexingErrors` é um boolean que identifica se o subgraph encontrou erros de indexação em algum bloco passado +O Graph Node implementa validações [baseadas em especificação](https://spec.graphql.org/October2021/#sec-Validation) dos queries da GraphQL que recebe, através do [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules) — que tem base na [referência de implementação graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries que não aderem a uma regra de validação fazem isso com um erro comum — para saber mais, visite as [especificações da GraphQL](https://spec.graphql.org/October2021/#sec-Validation). From b0c896054b0dba4dd122454300f638edc7023c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:36 -0400 Subject: [PATCH 1173/1709] New translations timeseries.mdx (Portuguese) --- website/src/pages/pt/subgraphs/best-practices/timeseries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/subgraphs/best-practices/timeseries.mdx b/website/src/pages/pt/subgraphs/best-practices/timeseries.mdx index b0a9925207eb..bb25b602d8dd 100644 --- a/website/src/pages/pt/subgraphs/best-practices/timeseries.mdx +++ b/website/src/pages/pt/subgraphs/best-practices/timeseries.mdx @@ -1,5 +1,5 @@ --- -title: 'Melhores Práticas para um Subgraph #5 — Simplifique e Otimize com Séries Temporais e Agregações' +title: "Melhores Práticas para um Subgraph #5 — Simplifique e Otimize com Séries Temporais e Agregações" sidebarTitle: Séries de Tempo e Agregações --- From ffd5cebacff21285cbf8278fc96410b5a9f24dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:37 -0400 Subject: [PATCH 1174/1709] New translations graphql-api.mdx (Russian) --- .../ru/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx index 8f8c58dafc82..9a310ed82117 100644 --- a/website/src/pages/ru/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ru/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: API GraphQL Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## Что такое GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Запросы с GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Примечание: `query` не нужно указывать в начале `graphql` запроса при использовании The Graph. +### Single Entity Queries Example -Запрос для одного объекта `Token`, определенного в Вашей схеме: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -> Примечание: При запросе одного объекта поле `id` является обязательным и должно быть записано как строка. +> Note: Single entity queries require the `id` parameter as a string. -Запрос всех объектов `Token`: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -### Сортировка +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Использовать параметр `orderBy` для сортировки по определенному атрибуту. -- Использовать параметр `orderDirection`, чтобы указать направление сортировки `asc` для возрастания или `desc` для убывания. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Пример +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Начиная с Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), объекты можно сортировать на основе вложенных объектов. - -В следующем примере мы сортируем токены по имени их владельца: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ When querying a collection, you can: } ``` -> В настоящее время сортировка возможна по одноуровневым полям типа `String` или `ID`, в полях `@entity` и `@derivedFrom`. К сожалению, [сортировка по интерфейсам в одноуровневых объектах](https://github.com/graphprotocol/graph-node/pull/4058), сортировка по полям-массивам и вложенным объектам пока не поддерживается. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Пагинация +### Pagination Example -При запросе коллекции лучше всего: +When querying a collection, it is best to: - Использовать параметр `first` для пагинации данных с начала коллекции. - Стандартная сортировка выполняется по `ID` в возрастающем алфавитно-числовом порядке, **не** по времени создания. - Использовать параметр `skip`, чтобы пропускать объекты и осуществлять пагинацию. Например, `first:100` покажет первые 100 объектов, а `first:100, skip:100` покажет следующие 100 объектов. - Избегайте использования `skip` в запросах, так как это обычно приводит к низкой производительности. Для получения большого количества элементов лучше выполнять постраничную загрузку объектов на основе атрибута, как показано в предыдущем примере. -#### Example Using `first` - -Запрос первых 10 токенов: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ When querying a collection, you can: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Запрос 10 объектов `Token`, смещенных на 10 позиций от начала коллекции: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ To query for groups of entities in the middle of a collection, the `skip` parame } ``` -#### Example Using `first` and `id_ge` - -Если клиенту нужно получить большое количество объектов, эффективнее выполнять запросы на основе атрибута и фильтровать по этому атрибуту. Например, клиент может получить большое количество токенов с помощью следующего запроса: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -В первый раз запрос отправляется с `lastID = ""`, а в последующих запросах `lastID` устанавливается в значение атрибута `id` последнего объекта из предыдущего запроса. Этот подход значительно эффективнее, чем использование увеличивающихся значений `skip`. - ### Фильтрация -- Вы можете использовать параметр `where` в запросах для фильтрации по различным свойствам. -- Вы можете фильтровать по нескольким значениям внутри параметра `where`. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -Вы можете использовать такие суффиксы, как `_gt`, `_lte` для сравнения значений: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Block Filtering - -Вы также можете фильтровать объекты, которые были обновлены на указанном блоке или позже, с помощью `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Фильтрация на основе вложенных объектов возможна в полях с суффиксом `_`. - -Это может быть полезно, если Вы хотите получать только объекты, у которых объекты дочернего уровня удовлетворяют заданным условиям. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -### Logical Operators +#### Logical Operators -Начиная с Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0), Вы можете группировать несколько параметров в одном аргументе `where`, используя операторы `and` или `or` для фильтрации результатов по нескольким критериям. - -#### Using `and` Operator +##### AND Operations Example Следующий пример фильтрует задачи с `outcome` `succeeded` и `number` больше или равно `100`. @@ -234,27 +207,11 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -> **Синтаксический сахар:** Вы можете упростить приведенный выше запрос, убрав оператор `and` и передав подвыражение, разделенное запятыми. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -Следующий пример фильтрует задачи с `outcome` `succeeded` или `number` больше или равно `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Все фильтры - -Полный список суффиксов параметров: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Обратите внимание, что некоторые суффиксы поддерживаются только для определенных типов. Например, `Boolean` поддерживает только `_not`, `_in` и `_not_in`, тогда как `_` доступен только для объектных и интерфейсных типов. - -Кроме того, в качестве части аргумента `where` доступны следующие глобальные фильтры: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -Вы можете запрашивать состояние своих объектов не только для последнего блока, который используется по умолчанию, но и для произвольного блока в прошлом. Блок, в котором должен выполняться запрос, можно указать либо по номеру блока, либо по его хэшу, включив аргумент `block` в поля верхнего уровня запросов. +Queries support historical state retrieval using the `block` parameter: -Результат такого запроса не изменится со временем, то есть запрос на определенном прошедшем блоке вернет тот же результат, независимо от времени выполнения, за исключением случая, когда запрос выполняется на блоке, который находится очень близко к началу чейна. В этом случае результат может измениться, если этот блок окажется **не** на основном чейне, и чейн будет реорганизован. Как только блок можно будет считать окончательным, результат запроса больше не изменится. +- `number`: Integer block number +- `hash`: String block hash > Примечание: Текущая реализация все еще подвержена определенным ограничениям, которые могут нарушить эти гарантии. Реализация не всегда может точно определить, что данный хэш блока вообще не находится на основном чейне, или что результат запроса по хэшу блока для блока, который еще не считается окончательным, может быть изменен из-за реорганизации блоков, происходящей одновременно с запросом. Эти ограничения не влияют на результаты запросов по хэшу блока, если блок окончателен и подтвержден на основном чейне. [Этот вопрос](https://github.com/graphprotocol/graph-node/issues/1405) подробно объясняет, в чем состоят эти ограничения. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ _change_block(number_gte: Int) } ``` -Этот запрос вернет объекты `Challenge` и связанные с ними объекты `Application` в том виде, в каком они существовали сразу после обработки блока номер 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ _change_block(number_gte: Int) } ``` -Этот запрос вернет объекты `Challenge` и связанные с ними объекты `Application` в том виде, в каком они существовали сразу после обработки блока с заданным хешем. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Символ | Оператор | Описание | -| ------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Для объединения нескольких условий поиска в фильтр для объектов, которые включают все указанные условия | -| `\|` | `Or` | Запросы с несколькими условиями поиска, разделенные оператором or, вернут все объекты, которые соответствуют любому из предоставленных условий | -| `<->` | `Follow by` | Укажите расстояние между двумя словами. | -| `:*` | `Prefix` | Используйте поисковый запрос по префиксу, чтобы найти слова с соответствующим префиксом (необходимо 2 символа) | +| Operator | Символ | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Валидация +### Определение схемы -Graph Node реализует валидацию [на основе спецификации](https://spec.graphql.org/October2021/#sec-Validation) для получаемых GraphQL-запросов с использованием [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), которая основана на [референсной реализации graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Запросы, не прошедшие проверку валидации, завершаются стандартной ошибкой. Ознакомьтесь со [спецификацией GraphQL](https://spec.graphql.org/October2021/#sec-Validation), чтобы узнать больше. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Метаданные субграфа +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` — это уникальный идентификатор, соответствующий IPFS CID файла `subgraph.yaml`. - -`block` предоставляет информацию о последнем блоке (с учетом любых ограничений блоков, переданных в `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Оператор | Описание | Пример | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Примечания + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: хэш блока -- number: номер блока -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Валидация -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node реализует валидацию [на основе спецификации](https://spec.graphql.org/October2021/#sec-Validation) для получаемых GraphQL-запросов с использованием [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), которая основана на [референсной реализации graphql-js](https://github.com/graphql/graphql-js/tree/main/src/validation). Запросы, не прошедшие проверку валидации, завершаются стандартной ошибкой. Ознакомьтесь со [спецификацией GraphQL](https://spec.graphql.org/October2021/#sec-Validation), чтобы узнать больше. From 3ae808b73dabc15ec79b18dcc1ddb241d0cb7d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:39 -0400 Subject: [PATCH 1175/1709] New translations graphql-api.mdx (Swedish) --- .../sv/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx index 8ec046088491..f8c4b0258481 100644 --- a/website/src/pages/sv/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/sv/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sortering +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Exempel +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Paginering +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Fråga efter de första 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Fråga efter de första 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtrering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -Detta kan vara användbart om du vill hämta endast entiteter vars entiteter på barnnivå uppfyller de angivna villkoren. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Detta kan vara användbart om du vill hämta endast entiteter vars entiteter på } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Alla filter - -Fullständig lista över parametersuffix: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operatör | Beskrivning | -| ------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | För att kombinera flera söktermer till ett filter för entiteter som inkluderar alla de angivna termerna | -| `\|` | `Or` | Förfrågningar med flera söktermer separerade av ellipsen kommer att returnera alla entiteter med en matchning från någon av de angivna termerna | -| `<->` | `Follow by` | Ange avståndet mellan två ord. | -| `:*` | `Prefix` | Använd prefixsöktermen för att hitta ord vars prefix matchar (2 tecken krävs.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validering +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Metadata för undergrafer +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operatör | Beskrivning | Exempel | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: blockets hash -- nummer: blockets nummer -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validering -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 9d0652ea90e8da497523b6f79c54ea73ce5e938c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:42 -0400 Subject: [PATCH 1176/1709] New translations graphql-api.mdx (Turkish) --- .../tr/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx index dfa6bf5a358c..cea5ddf124ce 100644 --- a/website/src/pages/tr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/tr/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API'ı Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## GraphQL Nedir? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL] (https://graphql.org/learn/), API'lar için bir sorgu dili ve bu sorguları mevcut verileriniz üzerinde çalıştıran bir sorgu dilidir. The Graph, Subgraph'leri sorgulamak için GraphQL kullanır. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## GraphQL Sorguları +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Not: The Graph'te, `graphql` sorgularının başına `query` (sorgu) ifadesinin eklenmesi gerekmez. +### Single Entity Queries Example -Şemanızda tanımlı tek bir `Token` varlığı için sorgu: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -> Not: Tek bir varlık sorgulanırken `id` alanı zorunludur ve bir dize olarak yazılmalıdır. +> Note: Single entity queries require the `id` parameter as a string. -Tüm `Token` varlıklarını sorgulama: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Tüm `Token` varlıklarını sorgulama: } ``` -### Sıralama +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Belirli bir özniteliğe göre sıralama yapmak için `orderBy` parametresini kullanın. -- Sıralama yönünü belirtmek için `orderDirection` kullanın; artan sıralama için `asc`, azalan sıralama için `desc`. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Örnek +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Graph Düğümü [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) sürümünden itibaren, varlıklar iç içe ve varlıklara göre sıralanabilir. - -Aşağıdaki örnek, token'ların sahip adına göre nasıl sıralandığını gösteriyor: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ Aşağıdaki örnek, token'ların sahip adına göre nasıl sıralandığını g } ``` -> Şu anda, `@entity` ve `@derivedFrom` alanlarında bir seviye derinliğindeki `String` veya `ID` türlerine göre sıralama yapabilirsiniz. Ne yazık ki, [bir seviye derinliğindeki varlıklarda arayüzlere göre sıralama](https://github.com/graphprotocol/graph-node/pull/4058), alanı bir dizi ya da iç içe bir varlık olan ögelere göre sıralama henüz desteklenmemektedir. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Sayfalandırma +### Pagination Example -Bir koleksiyon sorgularken aşağıdakileri uygulamanız önerilir: +When querying a collection, it is best to: - Koleksiyonun başından itibaren sayfalama yapmak için `first` parametresini kullanın. - Varsayılan sıralama düzeni, oluşturulma zamanına göre **değil**, artan alfasayısal sıraya göre `ID` alanına göre yapılır. - Varlıkları atlamak ve sayfalama yapmak için `skip` parametresini kullanın. Örneğin, `first:100` ilk 100 varlığı gösterir. `first:100, skip:100` ise sonraki 100 varlığı gösterir. - Sorgularda `skip` değerlerini kullanmaktan kaçının, çünkü genellikle düşük performans gösterirler. Çok sayıda ögeyi getirmek için, yukarıdaki örnekte gösterildiği gibi bir özniteliğe göre varlıklar arasında sayfalama yapmak en iyi yaklaşımdır. -#### Example Using `first` - -İlk 10 tokeni sorgulayın: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Bir koleksiyon sorgularken aşağıdakileri uygulamanız önerilir: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Koleksiyonun başından itibaren 10 öge atlayarak 10 `Token` varlığı sorgulama: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Koleksiyonun başından itibaren 10 öge atlayarak 10 `Token` varlığı sorgula } ``` -#### Example Using `first` and `id_ge` - -Bir istemcinin çok sayıda varlık alması gerektiğinde, sorguları bir öznitelik temelinde oluşturmak ve bu özniteliğe göre filtrelemek daha yüksek performans sağlar. Örneğin, bir istemci aşağıdaki sorguyu kullanarak çok sayıda token alabilir: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -İlk seferde `lastID = ""` ile sorgu gönderilecek ve sonraki istekler için `lastID` değeri önceki istekteki son varlığın `id` özelliğine göre ayarlanacaktır. Bu yaklaşım, artan `skip` değerlerini kullanmaktan önemli ölçüde daha iyi performans gösterir. - ### Filtreleme -- `where` parametresini sorgularınızda farklı özellikleri filtrelemek için kullanabilirsiniz. -- Birden çok değeri `where` parametresi içinde filtreleyebilirsiniz. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -`_gt`, `_lte` gibi son ekleri değer karşılaştırması için kullanabilirsiniz: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Block Filtering - -Belirtilen bir blokta veya sonrasında güncellenen varlıkları, `_change_block(number_gte: Int)` ile de filtreleyebilirsiniz. - -Bu, yalnızca değişen varlıkları getirmek istiyorsanız kullanışlı olabilir. Örneğin, son yoklamanızdan bu yana değişen varlıklar için. Ya da, subgraph'inizde varlıkların nasıl değiştiğini araştırmak veya hata ayıklamak için faydalı olabilir (bir blok filtresiyle beraber kullanıldığında, yalnızca belirli bir blokta değişen varlıkları izole edebilirsiniz). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ Bu, yalnızca değişen varlıkları getirmek istiyorsanız kullanışlı olabil } ``` -#### Nested Entity Filtering - -İç içe varlıklara göre filtreleme, `_` son ekine sahip alanlarda mümkündür. - -Bu, yalnızca alt düzey varlıkları sağlanan koşulları karşılayan varlıkları getirmek istiyorsanız yararlı olabilir. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Bu, yalnızca alt düzey varlıkları sağlanan koşulları karşılayan varlık } ``` -### Logical Operators +#### Logical Operators -Graph Düğümü [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) sürümünden itibaren, birden fazla kritere dayalı sonuçları filtrelemek için aynı `where` argümanı içinde birden çok parametreyi `and` veya `or` operatörleriyle gruplayabilirsiniz. - -#### Using `and` Operator +##### AND Operations Example Aşağıdaki örnek, `outcome` değeri `succeeded` olan ve `number` alanı `100` veya daha büyük olan challenge'ları filtreler. @@ -234,27 +207,11 @@ Aşağıdaki örnek, `outcome` değeri `succeeded` olan ve `number` alanı `100` } ``` -> **Sözdizimsel şeker:** Yukarıdaki sorguyu, virgülle ayrılmış bir alt ifade kullanıp `and` operatörünü kaldırarak sadeleştirebilirsiniz. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -Aşağıdaki örnek, `outcome` değeri `succeeded` olan veya `number` alanı `100` veya daha büyük olan challenge'ları filtreler. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ Aşağıdaki örnek, `outcome` değeri `succeeded` olan veya `number` alanı `10 } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### Tüm Filtreler - -Parametre eklerinin tam listesi: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Lütfen bazı son eklerin yalnızca belirli türler için desteklendiğini unutmayın. Örneğin, `Boolean` türü yalnızca `_not`, `_in` ve `_not_in` son eklerini destekler; ancak `_` soneki yalnızca nesne ve arayüz türleri için kullanılabilir. - -Ayrıca, `where` argümanının bir parçası olarak aşağıdaki genel filtreler kullanılabilir: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -Varlıklarınızın durumunu en son blok için (varsayılan), ya da geçmişteki herhangi bir blok için sorgulayabilirsiniz. Sorgunun hangi blokta yapılacağını belirtmek için, üst seviye sorgu alanlarında `block` argümanı eklenerek ilgili blok numarası veya blok hash’i kullanılabilir. +Queries support historical state retrieval using the `block` parameter: -Böyle bir sorgunun sonucu zamanla değişmez; yani, geçmişteki belirli bir blokta yapılan bir sorgu, ne zaman çalıştırılırsa çalıştırılsın aynı sonucu döndürür. Ancak, zincirin en ucuna (head) çok yakın bir blokta sorgulama yapılırsa, bu blok ana zincirde **yer almıyorsa** ve zincir yeniden düzenlenirse sonuç değişebilir. Bir blok artık kesin (final) olarak kabul edilebildiğinde, o blok için yapılan sorgunun sonucu değişmeyecektir. +- `number`: Integer block number +- `hash`: String block hash > **Not:** Mevcut uygulama, bu güvenceleri ihlal edebilecek bazı sınırlamalara hâlâ tabidir. Uygulama, verilen bir blok hash’inin ana zincirde yer almadığını her zaman tespit edemez veya henüz kesin (final) olarak kabul edilmeyen bir blok için yapılan bir blok hash sorgusunun, sorgu ile eşzamanlı olarak gerçekleşen bir zincir yeniden düzenlemesinden etkilenip etkilenmeyeceğini öngöremez. Ancak bu sınırlamalar, blok kesinleşmiş ve ana zincirde yer aldığı biliniyorsa, blok hash ile yapılan sorguların sonuçlarını etkilemez. Bu sınırlamalar hakkında ayrıntılı bilgi için [bu GitHub issue'su](https://github.com/graphprotocol/graph-node/issues/1405) incelenebilir. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ Böyle bir sorgunun sonucu zamanla değişmez; yani, geçmişteki belirli bir bl } ``` -Bu sorgu, blok numarası 8.000.000 işlendiği andan hemen sonraki halleriyle `Challenge` varlıklarını ve bunlara bağlı `Application` varlıklarını döndürecektir. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ Bu sorgu, blok numarası 8.000.000 işlendiği andan hemen sonraki halleriyle `C } ``` -Bu sorgu, verilen hash’e sahip blok işlendiği andan hemen sonraki halleriyle `Challenge` varlıklarını ve bunlara bağlı `Application` varlıklarını döndürecektir. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Sembol | Operatör | Tanım | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | Sağlanan tüm arama terimlerini içeren varlıkları filtrelemek için birden fazla arama terimini birleştirir | -| `\|` | `Or` | Or (veya) operatörüyle ayrılmış birden fazla arama terimi içeren sorgular, sağlanan terimlerden herhangi biriyle eşleşen tüm varlıkları döndürür | -| `<->` | `Follow by` | İki kelime arasındaki mesafeyi belirtmeyi sağlar. | -| `:*` | `Prefix` | Ön eki (Prefix'i) eşleşen kelimeleri bulmak için ön ek arama terimini kullanın (en az 2 karakter gereklidir). | +| Operator | Sembol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validasyon +### Şema Tanımı -Graph Düğümü, [graphql-js referans uygulamasını](https://github.com/graphql/graphql-js/tree/main/src/validation) temel alan [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)'yi kullanarak aldığı GraphQL sorgularının [spesifikasyon tabanlı](https://spec.graphql.org/October2021/#sec-Validation) doğrulamasını gerçekleştirir. Bir doğrulama kuralını geçemeyen sorgular standart bir hata ile sonuçlanır. Daha fazla bilgi için [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)'i ziyaret edin. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Üst Verisi +### Subgraph Metadata Example -Tüm Subgraph'lerde, Subgraph metadatasına erişim sağlayan otomatik olarak oluşturulmuş bir `_Meta_` nesnesi bulunur. Buna aşağıdaki şekilde sorgu yapabilirsiniz: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ Tüm Subgraph'lerde, Subgraph metadatasına erişim sağlayan otomatik olarak ol } ``` -Bir blok belirtilirse, metadata o bloğa ait durumu yansıtır; belirtilmezse en son endekslenmiş blok kullanılır. Belirtilen blok, Subgraph'in başlangıç bloğundan sonra ve en son endekslenmiş bloğa eşit ya da ondan küçük olmalıdır. - -`deployment`, `subgraph.yaml` dosyasının IPFS CID’sine karşılık gelen özgün bir kimliktir. - -`block`, `_meta`'ya iletilen herhangi bir blok kısıtlamasını dikkate alarak, en son blok hakkında bilgi sağlar: +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operatör | Tanım | Örnek | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notlar + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: bloğun hash değeri -- number: blok numarası -- timestamp: eğer mevcuts, blokun zaman damgası (bu şu anda yalnızca EVM ağlarını endeksleyen Subgraph'ler için kullanılabilir) +### Validasyon -`hasIndexingErrors`, spesifik bir Subgraph'in geçmişteki bir blokta endeksleme hatalarıyla karşılaşıp karşılaşmadığını belirten bir boolean ifadedir +Graph Düğümü, [graphql-js referans uygulamasını](https://github.com/graphql/graphql-js/tree/main/src/validation) temel alan [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)'yi kullanarak aldığı GraphQL sorgularının [spesifikasyon tabanlı](https://spec.graphql.org/October2021/#sec-Validation) doğrulamasını gerçekleştirir. Bir doğrulama kuralını geçemeyen sorgular standart bir hata ile sonuçlanır. Daha fazla bilgi için [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)'i ziyaret edin. From dba152ebf4be588a0057c68a92ef39d1a7d18a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:45 -0400 Subject: [PATCH 1177/1709] New translations graphql-api.mdx (Ukrainian) --- .../uk/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx index 445413c1d969..99fda7819bf8 100644 --- a/website/src/pages/uk/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/uk/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Example +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | Description | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Визначення схеми -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | Description | Example | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From 0ace8822681720b6dc0d27e8ccce35ca0fed2fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:48 -0400 Subject: [PATCH 1178/1709] New translations graphql-api.mdx (Chinese Simplified) --- .../zh/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx index 6ed71be5d250..bb5ae992534b 100644 --- a/website/src/pages/zh/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/zh/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## 什么是GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/)是API的查询语言,也是用您现有数据执行这些查询的运行时间。The Graph使用GraphQL查询子图。 +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## 用GraphQL查询 +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> 注意:在使用The Graph时,`query` 不需要包含在`graphql`查询的顶部。 +### Single Entity Queries Example -查询在您的模式中定义的单个`Token`实体: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -> 注意:当查询单个实体时,需要填写`id`字段,它必须是一个字符串。 +> Note: Single entity queries require the `id` parameter as a string. -查询所有 `Token` 实体: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -### 排序 +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- 使用 `orderBy` 参数按特定属性排序。 -- 使用 `orderDirection` 来指定排序方向, `asc` 用于升序或 `desc` 用于降序。 +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### 示例 +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -从Graph节点[`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) 可以根据嵌套实体排序。 - -在以下示例中,我们根据代币所有者的名称对其进行排序: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ When querying a collection, you can: } ``` -> 目前,您可以在 `@entity` 和 `@orotovedFrom` 字段按一级深度`String` 或 `ID`类型排序。 不幸的是,[按一个深度实体的接口排序](https://github.com/graphprotocol/graph-node/pull/4058),仍不支持按数组和嵌套实体的字段排序。 +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### 分页 +### Pagination Example -当查询集合时,最好: +When querying a collection, it is best to: - 从集合开始使用`first`参数分页。 - 默认排序顺序是 `ID`,按字母和数字顺序排列,**不是**创建时间。 - 使用 `skip` 参数跳过实体和分页。例如,`first:100` 会显示前100个实体,`first:100, skip:100`会显示后100个实体。 - 避免在查询中使用 `skip` 值,因为它们通常表现很差。 要检索大量条目,最好是通过上面示例中显示的属性的实体进行查找。 -#### Example Using `first` - -查询前10 个代币: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ When querying a collection, you can: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -查询 10 `Token` 实体,由集合开始时的10个地方抵消: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ To query for groups of entities in the middle of a collection, the `skip` parame } ``` -#### Example Using `first` and `id_ge` - -如果客户端需要检索大量实体,则基于属性进行查询和过滤会明显提高性能。 例如,客户端可以使用以下查询检索大量代币: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $lastID }) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { tokens(first: 1000, where: { id_gt: $last } ``` -第一次,它会用'lastID = ""`发送查询, 对于随后的请求,它会在上次请求中将 `lastID`设置为最后一个实体的`id`属性。 这个方法将大大优于使用增加`skip\`值。 - ### 过滤 -- 您可以在查询中使用 `where` 参数来过滤不同的属性。 -- 您可以在 `where` 参数中筛选多个值。 - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -你可以使用后缀,例如`_gt`, `_lte`来进行值比较: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Block Filtering - -您也可以筛选在指定的区块中或之后更新的实体使用 `_change_block(number_gte: Int)`。 - -如果您只想获取已经更改的实体,例如自上次轮询以来改变的实体,那么这将非常有用。或者也可以调查或调试子图中实体的变化情况(如果与区块过滤器结合使用,则只能隔离在特定区块中发生变化的实体)。 +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Nested Entity Filtering - -在后缀是\`_'的字段中可以根据嵌套的实体进行过滤。 - -如果您希望只获取其子级实体满足条件的实体,那么这可能很有用。 +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -### Logical Operators +#### Logical Operators -对于Graph节点[`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0),您可以在同一个`where`参数中使用`and`或`or`运算符,根据多个标准过滤结果。 - -#### Using `and` Operator +##### AND Operations Example 下面的示例对大于或等于`100`的`outcome`、`successed`和`number`的挑战进行过滤。 @@ -234,27 +207,11 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -> **Synteracc sugar:** 你可以通过传递一个用逗号分隔的子表达式来移除`and`运算符来简化上述查询。 -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -下面的示例对大于或等于`100`的`outcome`、`successed`和`number`的挑战进行过滤。 +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### 所有过滤器 - -参数后缀的完整列表: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> 请注意,某些后缀只支持特定类型。 例如,`Boolean` 只支持 `_not`、`_in`和`_not_in`,但`_` 只适用于对象和接口类型。 - -此外,下列全局过滤器可以作为`where`参数的一部分: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -您可以查询您的实体状态,不仅仅是为了最新的区块, 它是默认的,但也是过去的任意区块的。 可以在查询的顶级字段中包含一个 ' block' 参数来指定查询的要么用其区块编号或区块哈希。 +Queries support historical state retrieval using the `block` parameter: -这种查询结果不会随着时间的推移而改变,即对过去某个区块的查询,无论何时执行,都将返回相同的结果。唯一的例外是,如果您在非常靠近链头的区块上进行查询,如果该区块**不**在主链上,并且链被重新组织,则结果可能会改变。 一旦一个区块被确认是最终的区块,那么查询的结果就不会改变。 +- `number`: Integer block number +- `hash`: String block hash > 请注意,当前的实现仍然受到某些限制,这些限制可能会违反这些保证。该实现不能总是判断给定的区块哈希根本不在主链上,或者对于一个不能被认为是最终的区块,逐块哈希查询的结果可能会受到与查询同时运行的区块重组的影响。当区块是最终区块并且已知在主链上时,它们不会影响区块哈希查询的结果。[这个](https://github.com/graphprotocol/graph-node/issues/1405)问题详细解释了这些限制是什么。 -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ _change_block(number_gte: Int) } ``` -此查询将返回 `Challenge` 实体及其关联的 `Application` 实体,因为它们在处理8,000,000个区块后就存在了。 +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ _change_block(number_gte: Int) } ``` -此查询将返回 `Challenge` 实体及其关联的 `Application` 实体,因为它们在处理具有给定哈希值的区块后就存在了。 - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| 符号 | 运算符 | 描述 | -| ----- | ----------- | ------------------------------------- | -| `&` | `And` | 用于将多个搜索词组合到包含所有提供词条的实体的过滤器中 | -| `\|` | `Or` | 由 or 运算符分隔的多个搜索词的查询,将返回与任何提供的词匹配的所有实体 | -| `<->` | `Follow by` | 指定两个单词之间的距离。 | -| `:*` | `Prefix` | 使用前缀搜索词查找前缀匹配的单词(需要 2 个字符) | +| Operator | 符号 | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### 验证 +### 模式定义 -Graph节点实现使用 [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)验证它收到的 GraphQL 查询的 [specification-based](https://spec.graphql.org/October2021/#sec-Validation) 验证基于 [graphql-js 参考实现](https://github.com/graphql/graphql-js/tree/main/src/validation)。 查询失败的验证规则有一个标准错误 - 请访问 [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)来了解更多信息。 +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### 子图元数据 +### Subgraph Metadata Example -所有子图都有一个自动生成的`_Meta_`对象,它提供对子图元数据的访问。可按如下方式查询: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ Graph节点实现使用 [graphql-tools-rs](https://github.com/dotansimha/graphql } ``` -如果提供了区块,则元数据为该区块的元数据,如果未使用最新的索引区块。如果提供,则区块必须在子图的起始区块之后,并且小于或等于最近索引的区块。 - -`deplement` 是一个唯一的ID,与 `subgraph.yaml` 文件的 IPFS CID 相对应。 - -`block` 提供了关于最新区块的信息(同时考虑到传递给`_meta`的任何区块约束): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| 运算符 | 描述 | 示例 | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### 注意: + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash:区块的哈希 -- number:区块编号 -- timestamp:区块的时间戳,如果可用的话(当前仅适用于索引EVM网络的子图) +### 验证 -`hasIndexingErrors`是一个布尔值,用于标识子图在过去的某个区块中是否遇到索引错误。 +Graph节点实现使用 [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules)验证它收到的 GraphQL 查询的 [specification-based](https://spec.graphql.org/October2021/#sec-Validation) 验证基于 [graphql-js 参考实现](https://github.com/graphql/graphql-js/tree/main/src/validation)。 查询失败的验证规则有一个标准错误 - 请访问 [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation)来了解更多信息。 From be0fdf09ba0c06fe2a27e723ba39f205d5881d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:50 -0400 Subject: [PATCH 1179/1709] New translations timeseries.mdx (Chinese Simplified) --- website/src/pages/zh/subgraphs/best-practices/timeseries.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/subgraphs/best-practices/timeseries.mdx b/website/src/pages/zh/subgraphs/best-practices/timeseries.mdx index c18b61169631..47c83a56f7e4 100644 --- a/website/src/pages/zh/subgraphs/best-practices/timeseries.mdx +++ b/website/src/pages/zh/subgraphs/best-practices/timeseries.mdx @@ -161,7 +161,7 @@ type TokenStats @aggregation(intervals: ["hour", "day"], source: "TokenData") { - 最大正金额: @aggregate(fn: "max", arg: "greatest(amount0, amount1, 0)") - 条件总和: @aggregate(fn: "sum", arg: "case when amount0 > amount1 then amount0 else 0 end") -支持的运算符和函数包括基本算术(+、-、\_、/)、比较运算符、逻辑运算符(和、或、非)以及最大、最小、合并等SQL函数。 +支持的运算符和函数包括基本算术(+、-、_、/)、比较运算符、逻辑运算符(和、或、非)以及最大、最小、合并等SQL函数。 ### 查询参数 From b9a5c2e038c1b37ac41aad34e41c3e5a491ea6f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:51 -0400 Subject: [PATCH 1180/1709] New translations graphql-api.mdx (Urdu (Pakistan)) --- .../ur/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx index 225b6da6dfb5..2c7e0b8efb2c 100644 --- a/website/src/pages/ur/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/ur/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### سورٹنگ +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### مثال +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### صفحہ بندی +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -پہلے 10 ٹوکنز سے کیوری کریں: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ When querying a collection, it's best to: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### فلٹرنگ -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -یہ مفید ہو سکتا ہے اگر آپ صرف ان ہستیوں کو لانے کے خواہاں ہیں جن کی چائلڈ لیول کے ہستی فراہم کردہ شرائط کو پورا کرتے ہیں. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Filtering on the basis of nested entities is possible in the fields with the `_` } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### تمام فلٹرز - -پیرامیٹر لاحقوں کی مکمل فہرست: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| علامت | آپریٹر | تفصیل | -| ----- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | ایک سے زیادہ تلاش کی اصطلاحات کو ایک فلٹر میں یکجا کرنے کے لیے ان ہستیوں کے لیے جس میں فراہم کردہ تمام اصطلاحات شامل ہوں | -| `\|` | `Or` | Or آپریٹر کے ذریعہ الگ کردہ متعدد تلاش کی اصطلاحات کے ساتھ کیوریز فراہم کردہ شرائط میں سے کسی سے بھی مماثلت کے ساتھ تمام ہستیوں کو واپس کریں گے | -| `<->` | `Follow by` | دو الفاظ کے درمیان فاصلہ بتائیں. | -| `:*` | `Prefix` | ایسے الفاظ تلاش کرنے کے لیے پریفکس ​​تلاش کی اصطلاح استعمال کریں جن کا سابقہ ​​مماثل ہو (۲ حروف درکار ہیں.) | +| Operator | علامت | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### توثیق +### اسکیما کی تعریف -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### سب گراف میٹا ڈیٹا +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| آپریٹر | تفصیل | مثال | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- ہیش: بلاک کی ہیش -- نمبر: بلاک نمبر -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### توثیق -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From eef66383926744b67f256b6b3fb6fe02cc7a07f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:53 -0400 Subject: [PATCH 1181/1709] New translations graphql-api.mdx (Vietnamese) --- .../vi/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx index fc862800d2f6..8ca8a9470910 100644 --- a/website/src/pages/vi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/vi/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### Ví dụ +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Biểu tượng | Toán tử | Miêu tả | -| ---------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `&` | `And` | Để kết hợp nhiều cụm từ tìm kiếm thành một bộ lọc cho các thực thể bao gồm tất cả các cụm từ được cung cấp | -| `\|` | `Or` | Các truy vấn có nhiều cụm từ tìm kiếm được phân tách bằng toán tử hoặc sẽ trả về tất cả các thực thể có kết quả khớp với bất kỳ cụm từ nào được cung cấp | -| `<->` | `Follow by` | Chỉ định khoảng cách giữa hai từ. | -| `:*` | `Prefix` | Sử dụng cụm từ tìm kiếm tiền tố để tìm các từ có tiền tố khớp với nhau (yêu cầu 2 ký tự.) | +| Operator | Biểu tượng | Description | +| --------- | ---------- | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### Schema Definition -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Toán tử | Miêu tả | Ví dụ | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From de0cbd01098273843908ea0fd84aa92601bfce68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:56 -0400 Subject: [PATCH 1182/1709] New translations graphql-api.mdx (Marathi) --- .../mr/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx index f2b5e8cbc5f1..ef5bbee43d9f 100644 --- a/website/src/pages/mr/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/mr/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: GraphQL API Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## What is GraphQL? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with your existing data. The Graph uses GraphQL to query Subgraphs. +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## Queries with GraphQL +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> Note: `query` does not need to be included at the top of the `graphql` query when using The Graph. +### Single Entity Queries Example -Query for a single `Token` entity defined in your schema: +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ Query for a single `Token` entity defined in your schema: } ``` -> Note: When querying for a single entity, the `id` field is required, and it must be written as a string. +> Note: Single entity queries require the `id` parameter as a string. -Query all `Token` entities: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ Query all `Token` entities: } ``` -### Sorting +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- Use the `orderBy` parameter to sort by a specific attribute. -- Use the `orderDirection` to specify the sort direction, `asc` for ascending or `desc` for descending. +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### उदाहरण +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) entities can be sorted on the basis of nested entities. - -The following example shows tokens sorted by the name of their owner: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ The following example shows tokens sorted by the name of their owner: } ``` -> Currently, you can sort by one-level deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. Unfortunately, [sorting by interfaces on one level-deep entities](https://github.com/graphprotocol/graph-node/pull/4058), sorting by fields which are arrays and nested entities is not yet supported. +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### Pagination +### Pagination Example -When querying a collection, it's best to: +When querying a collection, it is best to: - Use the `first` parameter to paginate from the beginning of the collection. - The default sort order is by `ID` in ascending alphanumeric order, **not** by creation time. - Use the `skip` parameter to skip entities and paginate. For instance, `first:100` shows the first 100 entities and `first:100, skip:100` shows the next 100 entities. - Avoid using `skip` values in queries because they generally perform poorly. To retrieve a large number of items, it's best to page through entities based on an attribute as shown in the previous example above. -#### Example Using `first` - -Query the first 10 tokens: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Query the first 10 tokens: } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -Query 10 `Token` entities, offset by 10 places from the beginning of the collection: +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ Query 10 `Token` entities, offset by 10 places from the beginning of the collect } ``` -#### Example Using `first` and `id_ge` - -If a client needs to retrieve a large number of entities, it's more performant to base queries on an attribute and filter by that attribute. For example, a client could retrieve a large number of tokens using this query: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -The first time, it would send the query with `lastID = ""`, and for subsequent requests it would set `lastID` to the `id` attribute of the last entity in the previous request. This approach will perform significantly better than using increasing `skip` values. - ### Filtering -- You can use the `where` parameter in your queries to filter for different properties. -- You can filter on multiple values within the `where` parameter. - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -You can use suffixes like `_gt`, `_lte` for value comparison: - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ You can use suffixes like `_gt`, `_lte` for value comparison: } ``` -#### Block Filtering - -You can also filter entities that were updated in or after a specified block with `_change_block(number_gte: Int)`. - -This can be useful if you are looking to fetch only entities which have changed, for example since the last time you polled. Or alternatively it can be useful to investigate or debug how entities are changing in your Subgraph (if combined with a block filter, you can isolate only entities that changed in a specific block). +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ This can be useful if you are looking to fetch only entities which have changed, } ``` -#### Nested Entity Filtering - -Filtering on the basis of nested entities is possible in the fields with the `_` suffix. - -This can be useful if you are looking to fetch only entities whose child-level entities meet the provided conditions. +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ This can be useful if you are looking to fetch only entities whose child-level e } ``` -### Logical Operators +#### Logical Operators -As of Graph Node [`v0.30.0`](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) you can group multiple parameters in the same `where` argument using the `and` or the `or` operators to filter results based on more than one criteria. - -#### Using `and` Operator +##### AND Operations Example The following example filters for challenges with `outcome` `succeeded` and `number` greater than or equal to `100`. @@ -234,27 +207,11 @@ The following example filters for challenges with `outcome` `succeeded` and `num } ``` -> **Syntactic sugar:** You can simplify the above query by removing the `and` operator by passing a sub-expression separated by commas. -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -The following example filters for challenges with `outcome` `succeeded` or `number` greater than or equal to `100`. +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ The following example filters for challenges with `outcome` `succeeded` or `numb } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### All Filters - -Full list of parameter suffixes: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> Please note that some suffixes are only supported for specific types. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`, but `_` is available only for object and interface types. - -In addition, the following global filters are available as part of `where` argument: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -You can query the state of your entities not just for the latest block, which is the default, but also for an arbitrary block in the past. The block at which a query should happen can be specified either by its block number or its block hash by including a `block` argument in the toplevel fields of queries. +Queries support historical state retrieval using the `block` parameter: -The result of such a query will not change over time, i.e., querying at a certain past block will return the same result no matter when it is executed, with the exception that if you query at a block very close to the head of the chain, the result might change if that block turns out to **not** be on the main chain and the chain gets reorganized. Once a block can be considered final, the result of the query will not change. +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ The result of such a query will not change over time, i.e., querying at a certai } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing block number 8,000,000. +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ This query will return `Challenge` entities, and their associated `Application` } ``` -This query will return `Challenge` entities, and their associated `Application` entities, as they existed directly after processing the block with the given hash. - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| Symbol | Operator | वर्णन | -| ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | For combining multiple search terms into a filter for entities that include all of the provided terms | -| `\|` | `Or` | Queries with multiple search terms separated by the or operator will return all entities with a match from any of the provided terms | -| `<->` | `Follow by` | Specify the distance between two words. | -| `:*` | `Prefix` | Use the prefix search term to find words whose prefix match (2 characters required.) | +| Operator | Symbol | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### Validation +### स्कीमा व्याख्या -Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### Subgraph Metadata +### Subgraph Metadata Example -All Subgraphs have an auto-generated `_Meta_` object, which provides access to Subgraph metadata. This can be queried as follows: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ All Subgraphs have an auto-generated `_Meta_` object, which provides access to S } ``` -If a block is provided, the metadata is as of that block, if not the latest indexed block is used. If provided, the block must be after the Subgraph's start block, and less than or equal to the most recently indexed block. - -`deployment` is a unique ID, corresponding to the IPFS CID of the `subgraph.yaml` file. - -`block` provides information about the latest block (taking into account any block constraints passed to `_meta`): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| Operator | वर्णन | उदाहरण | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- hash: the hash of the block -- number: the block number -- timestamp: the timestamp of the block, if available (this is currently only available for Subgraphs indexing EVM networks) +### Validation -`hasIndexingErrors` is a boolean identifying whether the Subgraph encountered indexing errors at some past block +Graph Node implements [specification-based](https://spec.graphql.org/October2021/#sec-Validation) validation of the GraphQL queries it receives using [graphql-tools-rs](https://github.com/dotansimha/graphql-tools-rs#validation-rules), which is based on the [graphql-js reference implementation](https://github.com/graphql/graphql-js/tree/main/src/validation). Queries which fail a validation rule do so with a standard error - visit the [GraphQL spec](https://spec.graphql.org/October2021/#sec-Validation) to learn more. From f0f2439295a6282cd1a62fe26445357dc0fd2bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:25:59 -0400 Subject: [PATCH 1183/1709] New translations graphql-api.mdx (Hindi) --- .../hi/subgraphs/querying/graphql-api.mdx | 254 ++++++++---------- 1 file changed, 116 insertions(+), 138 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx index f67ef3d7e0eb..41e99af1e6c7 100644 --- a/website/src/pages/hi/subgraphs/querying/graphql-api.mdx +++ b/website/src/pages/hi/subgraphs/querying/graphql-api.mdx @@ -4,9 +4,9 @@ title: ग्राफक्यूएल एपीआई Explore the GraphQL Query API for interacting with Subgraphs on The Graph Network. -## GraphQL क्या है? +[GraphQL](https://graphql.org/learn/) is a query language for APIs and a runtime for executing those queries with existing data. -[GraphQL](https://graphql.org/learn/) एक API के लिए क्वेरी भाषा है और मौजूदा डेटा के साथ उन क्वेरियों को निष्पादित करने के लिए एक रनटाइम है। The Graph, GraphQL का उपयोग करके Subgraphs से क्वेरी करता है। +The Graph uses GraphQL to query Subgraphs. ## Core Concepts @@ -24,15 +24,15 @@ Explore the GraphQL Query API for interacting with Subgraphs on The Graph Networ - Read-only operations (no mutations) - Defines entity interfaces and derived fields -## GraphQL के साथ क्वेरीज़ +## Query Structure -In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity` and `entities` fields will be generated on the top-level `Query` type. +GraphQL queries in The Graph target entities defined in the Subgraph schema. Each `Entity` type generates corresponding `entity` and `entities` fields on the root `Query` type. -### Example Queries +> Note: The `query` keyword is not required at the top level of GraphQL queries. -> ध्यान दें: 'queries' को The Graph का उपयोग करते समय 'graphql' क्वेरी के शीर्ष पर शामिल करने की आवश्यकता नहीं है। +### Single Entity Queries Example -एकल 'Token' एंटिटी के लिए क्वेरी करें जो आपके स्कीमा में परिभाषित है +Query for a single `Token` entity: ```graphql { @@ -43,9 +43,11 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -> नोट: जब किसी एकल entities के लिए क्वेरी की जा रही हो, तो 'id' फ़ील्ड आवश्यक है, और इसे एक स्ट्रिंग के रूप में लिखा जाना चाहिए। +> Note: Single entity queries require the `id` parameter as a string. -सभी 'Token' entities को क्वेरी करें: +### Collection Queries Example + +Query format for all `Token` entities: ```graphql { @@ -56,14 +58,14 @@ In the Subgraph schema, types called `Entities`. For each `Entity` type, `entity } ``` -### Her translation means sorting out +### Sorting Example -When querying a collection, you can: +Collection queries support the following sort parameters: -- 'orderBy' पैरामीटर का उपयोग किसी विशिष्ट गुण द्वारा सॉर्ट करने के लिए करें। -- 'orderDirection' का उपयोग सॉर्ट दिशा निर्दिष्ट करने के लिए करें, 'asc' के लिए आरोही या 'desc' के लिए अवरोही। +- `orderBy`: Specifies the attribute for sorting +- `orderDirection`: Accepts `asc` (ascending) or `desc` (descending) -#### उदाहरण +#### Standard Sorting Example ```graphql { @@ -74,11 +76,7 @@ When querying a collection, you can: } ``` -#### Example for Nested Entity Sorting - -Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) के अनुसार, entities को nested entities के आधार पर क्रमबद्ध किया जा सकता है। - -निम्नलिखित उदाहरण में टोकन उनके मालिक के नाम के अनुसार क्रमबद्ध किए गए हैं: +#### Nested Entity Sorting Example ```graphql { @@ -91,20 +89,18 @@ Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/ } ``` -> वर्तमान में, आप '@entity' और '@derivedFrom' फ़ील्ड्स पर एक-स्तरीय गहरे 'String' या 'ID' प्रकारों द्वारा क्रमबद्ध कर सकते हैं। अफसोस,[इंटरफेस द्वारा एक-स्तरीय गहरे entities पर क्रमबद्ध करना](https://github.com/graphprotocol/graph-node/pull/4058), ऐसे फ़ील्ड्स द्वारा क्रमबद्ध करना जो एरेज़ और नेस्टेड entities हैं, अभी तक समर्थित नहीं है। +> Note: Nested sorting supports one-level-deep `String` or `ID` types on `@entity` and `@derivedFrom` fields. -### पृष्ठ पर अंक लगाना +### Pagination Example -जब एक संग्रह के लिए क्वेरी की जाती है, तो यह सबसे अच्छा होता है: +When querying a collection, it is best to: - संग्रह की `शुरुआत` से पेजिनेट करने के लिए first पैरामीटर का उपयोग करें। - डिफ़ॉल्ट सॉर्ट आदेश `ID` के अनुसार आरोही अल्फ़ान्यूमेरिक क्रम में होता है, **न** कि निर्माण समय के अनुसार। - `skip` पैरामीटर का उपयोग entities को स्किप करने और पेजिनेट करने के लिए करें। instancesके लिए, first:100 पहले 100 entities दिखाता है और first:100, skip:100 अगले 100 entities दिखाता है। - `skip` मानों का उपयोग queries में करने से बचें क्योंकि ये सामान्यतः खराब प्रदर्शन करते हैं। एक बड़ी संख्या में आइटम प्राप्त करने के लिए, पिछले उदाहरण में दिखाए गए अनुसार किसी गुण के आधार पर entities के माध्यम से पेज करना सबसे अच्छा होता है। -#### Example Using `first` - -पहले 10 टोकन पूछें: +#### Standard Pagination Example ```graphql { @@ -115,11 +111,7 @@ Graph Node ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/ } ``` -To query for groups of entities in the middle of a collection, the `skip` parameter can be used in conjunction with the `first` parameter to skip a specified number of entities starting at the beginning of the collection. - -#### Example Using `first` and `skip` - -कलेक्शन की शुरुआत से 10 स्थानों के बाद 10 `Token` entities को queries करें। +#### Offset Pagination Example ```graphql { @@ -130,9 +122,7 @@ To query for groups of entities in the middle of a collection, the `skip` parame } ``` -#### Example Using `first` and `id_ge` - -यदि एक क्लाइंट को बड़ी संख्या में एंटिटीज़ पुनर्प्राप्त करने की आवश्यकता है, तो एट्रिब्यूट पर आधारित क्वेरी बनाना और उस एट्रिब्यूट द्वारा फ़िल्टर करना अधिक प्रभावशाली है। उदाहरण के लिए, एक क्लाइंट इस क्वेरी का उपयोग करके बड़ी संख्या में टोकन पुनर्प्राप्त कर सकता है: +#### Cursor-based Pagination Example ```graphql query manyTokens($lastID: String) { @@ -143,16 +133,11 @@ query manyTokens($lastID: String) { } ``` -पहली बार, यह queries को `lastID = ""`, के साथ भेजेगा, और subsequent requests के लिए यह `lastID` को पिछले अनुरोध में आखिरी entity के `id` attribute के रूप में सेट करेगा। यह तरीका increasing 'skip' मानों का उपयोग करने की तुलना में काफी बेहतर प्रदर्शन करेगा। - ### छनन -- आप अपनी क्वेरी में विभिन्न गुणों को फ़िल्टर करने के लिए 'where' पैरामीटर का उपयोग कर सकते हैं। -- आप 'where' पैरामीटर के भीतर कई मानों पर फ़िल्टर कर सकते हैं। - -#### Using `where` Filtering +The `where` parameter filters entities based on specified conditions. -Query challenges with `failed` outcome using 'where' filter: +#### Basic Filtering Example ```graphql { @@ -166,9 +151,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -आप मूल्य तुलना के लिए '_gt' , '_lte' जैसे प्रत्ययों का उपयोग कर सकते हैं। - -#### Range Filtering +#### Numeric Comparison Example ```graphql { @@ -180,11 +163,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Block Filtering - -आप उन इकाइयों entities को भी फ़िल्टर कर सकते हैं जिन्हें किसी निर्दिष्ट ब्लॉक में या उसके बाद अपडेट किया गया था, '_change_block(number_gte: Int)' के साथ। - -यह उपयोगी हो सकता है यदि आप केवल उन entities को लाना चाहते हैं जो बदल गई हैं, उदाहरण के लिए, पिछली बार जब आपने पोल किया था तब से। या वैकल्पिक रूप से, यह जांचने या डिबग करने के लिए उपयोगी हो सकता है कि आपकी Subgraph में entities कैसे बदल रही हैं (यदि इसे एक ब्लॉक फ़िल्टर के साथ जोड़ा जाए, तो आप केवल उन्हीं entities को अलग कर सकते हैं जो एक विशिष्ट ब्लॉक में बदली हैं)। +#### Block-based Filtering Example ```graphql { @@ -196,11 +175,7 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -#### Nested Entity Filtering - -नेस्टेड इकाइयों के आधार पर फ़िल्टरिंग उन फ़ील्ड्स में संभव है जिनके अंत में '_' प्रत्यय होता है। - -यह उपयोगी हो सकता है यदि आप केवल उन संस्थाओं को लाना चाहते हैं जिनके चाइल्ड-स्तरीय निकाय प्रदान की गई शर्तों को पूरा करते हैं। +#### Nested Entity Filtering Example ```graphql { @@ -214,11 +189,9 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -### Logical Operators +#### Logical Operators -ग्राफ-नोड ['v0.30.0'](https://github.com/graphprotocol/graph-node/releases/tag/v0.30.0) से, आप एक ही 'where' आर्गुमेंट में कई पैरामीटर्स को समूहित कर सकते हैं और 'and' या 'or' ऑपरेटर्स का उपयोग करके एक से अधिक मानदंडों के आधार पर परिणामों को फ़िल्टर कर सकते हैं। - -#### Using `and` Operator +##### AND Operations Example निम्नलिखित उदाहरण उन चुनौतियों को फ़िल्टर करता है जिनका ```outcome`` succeeded``` है और जिनका `number` `100` या उससे अधिक है। @@ -234,27 +207,11 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -> **सिंटैक्टिक शुगर**: आप उपरोक्त को queriesसरल बना सकते हैं `and` ऑपरेटर को हटाकर और उप-वाक्यांश को कॉमा से अलग करके पास करके। -> -> ```graphql -> { -> challenges(where: { number_gte: 100, outcome: "succeeded" }) { -> challenger -> outcome -> application { -> id -> } -> } -> } -> ``` - -#### Using `or` Operator - -निम्नलिखित उदाहरण उन चुनौतियों को फ़िल्टर करता है जिनका `outcome` `succeeded` है या जिनका `number` `100` या उससे अधिक है। +**Syntactic sugar:** You can simplify the above query by removing the `and` operator and by passing a sub-expression separated by commas. ```graphql { - challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenges(where: { number_gte: 100, outcome: "succeeded" }) { challenger outcome application { @@ -264,52 +221,36 @@ Query challenges with `failed` outcome using 'where' filter: } ``` -> **Note**: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use and operators instead of or whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. - -#### सभी फ़िल्टर - -पैरामीटर प्रत्यय की पूरी सूची: +##### OR Operations Example -``` -_ -_not -_gt -_lt -_gte -_lte -_in -_not_in -_contains -_contains_nocase -_not_contains -_not_contains_nocase -_starts_with -_starts_with_nocase -_ends_with -_ends_with_nocase -_not_starts_with -_not_starts_with_nocase -_not_ends_with -_not_ends_with_nocase +```graphql +{ + challenges(where: { or: [{ number_gte: 100 }, { outcome: "succeeded" }] }) { + challenger + outcome + application { + id + } + } +} ``` -> कुछ प्रत्यय केवल विशिष्ट प्रकारों के लिए समर्थित होते हैं। उदाहरण के लिए, `Boolean` केवल` _not, _in`, और `_not_`in का समर्थन करता है, लेकिन _ केवल ऑब्जेक्ट और इंटरफेस प्रकारों के लिए उपलब्ध है। - -इसके अलावा, `where` आर्ग्यूमेंट के हिस्से के रूप में निम्नलिखित वैश्विक फ़िल्टर उपलब्ध हैं: +Global filter parameter: ```graphql _change_block(number_gte: Int) ``` -### Time-travel Queries +### Time-travel Queries Example -आप न केवल नवीनतम ब्लॉक के लिए, जो डिफ़ॉल्ट होता है, बल्कि अतीत के किसी भी मनमाने ब्लॉक के लिए भी अपनी entities की स्थिति को queries कर सकते हैं। जिस ब्लॉक पर queries होनी चाहिए, उसे या तो उसके ब्लॉक नंबर या उसके ब्लॉक हैश द्वारा निर्दिष्ट किया जा सकता है, इसके लिए queries के शीर्ष स्तर के फ़ील्ड्स में block आर्ग्यूमेंट शामिल किया जाता है। +Queries support historical state retrieval using the `block` parameter: -ऐसे queries का परिणाम समय के साथ नहीं बदलेगा, यानी किसी निश्चित पिछले ब्लॉक परqueries करने से हमेशा वही परिणाम मिलेगा, चाहे इसे कभी भी निष्पादित किया जाए। इसका एकमात्र अपवाद यह है कि यदि आप किसी ऐसे ब्लॉक पर queries करते हैं जो chain के हेड के बहुत करीब है, तो परिणाम बदल सकता है यदि वह ब्लॉक मुख्य chain पर **not** होता है और chain का पुनर्गठन हो जाता है। एक बार जब किसी ब्लॉक को अंतिम (final) माना जा सकता है, तो queries का परिणाम नहीं बदलेगा। +- `number`: Integer block number +- `hash`: String block hash > Note: The current implementation is still subject to certain limitations that might violate these guarantees. The implementation can not always tell that a given block hash is not on the main chain at all, or if a query result by a block hash for a block that is not yet considered final could be influenced by a block reorganization running concurrently with the query. They do not affect the results of queries by block hash when the block is final and known to be on the main chain. [This issue](https://github.com/graphprotocol/graph-node/issues/1405) explains what these limitations are in detail. -#### Example Time-travel Queries +#### Block Number Query Example ```graphql { @@ -323,7 +264,7 @@ _change_block(number_gte: Int) } ``` -यह queries `Challenge` entities और उनके संबद्ध `Application` entities को लौटाएगी, जैसा कि वे ब्लॉक संख्या 8,000,000 के प्रोसेस होने के ठीक बाद मौजूद थे। +#### Block Hash Query Example ```graphql { @@ -337,28 +278,26 @@ _change_block(number_gte: Int) } ``` -यह queries `Challenge` entities और उनसे संबंधित `Application` entities को वापस करेगी, जैसा कि वे दिए गए हैश वाले ब्लॉक को प्रोसेस करने के तुरंत बाद मौजूद थीं। - -### Full-text Search Queries +### Full-Text Search Example Full-text search query fields provide an expressive text search API that can be added to the Subgraph schema and customized. Refer to [Defining Full-text Search Fields](/developing/creating-a-subgraph/#defining-fulltext-search-fields) to add full-text search to your Subgraph. Full-text search queries have one required field, `text`, for supplying search terms. Several special full-text operators are available to be used in this `text` search field. -Full-text search operators: +Full-text search fields use the required `text` parameter with the following operators: -| प्रतीक | ऑपरेटर | Description | -| ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `&` | `And` | सभी प्रदान किए गए शब्दों को शामिल करने वाली संस्थाओं के लिए एक से अधिक खोज शब्दों को फ़िल्टर में संयोजित करने के लिए | -| `\|` | ' Or' | या ऑपरेटर द्वारा अलग किए गए एकाधिक खोज शब्दों वाली क्वेरी सभी संस्थाओं को प्रदान की गई शर्तों में से किसी से मेल के साथ वापस कर देगी | -| `<->` | ' द्वारा अनुसरण करें ' | दो शब्दों के बीच की दूरी निर्दिष्ट करें। | -| `:*` | ' उपसर्ग ' | उन शब्दों को खोजने के लिए उपसर्ग खोज शब्द का उपयोग करें जिनके उपसर्ग मेल खाते हैं (2 वर्ण आवश्यक हैं।) | +| Operator | प्रतीक | Description | +| --------- | ------ | --------------------------------------------------------------- | +| And | `&` | Matches entities containing all terms | +| Or | `\|` | Return all entities with a match from any of the provided terms | +| Follow by | `<->` | Matches terms with specified distance | +| Prefix | `:*` | Matches word prefixes (minimum 2 characters) | -#### Full-text Query Examples +#### Search Examples -Using the `or` operator, this query will filter to blog entities with variations of either "anarchism" or "crumpet" in their full-text fields. +OR operator: -```graphql +``` { blogSearch(text: "anarchism | crumpets") { id @@ -369,7 +308,7 @@ Using the `or` operator, this query will filter to blog entities with variations } ``` -The `follow by` operator specifies that two words must appear a specific distance apart in full-text documents.. The following query will return all blogs with variations of "decentralize" followed by "philosophy" +“Follow” by operator: ```graphql { @@ -382,7 +321,7 @@ The `follow by` operator specifies that two words must appear a specific distanc } ``` -Combine full-text operators to make more complex filters. With a pretext search operator combined with a follow by this example query will match all blog entities with words that start with "lou" followed by "music". +Combined operators: ```graphql { @@ -395,15 +334,19 @@ Combine full-text operators to make more complex filters. With a pretext search } ``` -### मान्यकरण +### स्कीमा की परिभाषा -Graph Node अपने द्वारा प्राप्त GraphQL क्वेरी की स्पेसिफिकेशन-आधारित(https://spec.graphql.org/October2021/#sec-Validation) वैलिडेशन करता है, जो graphql-tools-rs(https://github.com/dotansimha/graphql-tools-rs#validation-rules) पर आधारित है, जो graphql-js संदर्भ कार्यान्वयन(https://github.com/graphql/graphql-js/tree/main/src/validation) पर आधारित है। क्वेरी जो वैलिडेशन नियम में विफल होती हैं, वे एक मानक त्रुटि के साथ विफल होती हैं - अधिक जानने के लिए GraphQL स्पेसिफिकेशन(https://spec.graphql.org/October2021/#sec-Validation) पर जाएं। +Entity types require: + +- GraphQL Interface Definition Language (IDL) format +- `@entity` directive +- `ID` field -### सबग्राफ मेटाडेटा +### Subgraph Metadata Example -सभी Subgraph में एक स्वचालित रूप से उत्पन्न `_Meta_` ऑब्जेक्ट होता है, जो Subgraph मेटाडाटा तक पहुंच प्रदान करता है। इसे निम्नलिखित तरीके से क्वेरी किया जा सकता है: +The `_Meta_` object provides subgraph metadata: -```graphQL +```graphql { _meta(block: { number: 123987 }) { block { @@ -417,14 +360,49 @@ Graph Node अपने द्वारा प्राप्त GraphQL क् } ``` -यदि कोई ब्लॉक प्रदान किया जाता है, तो मेटाडेटा उस ब्लॉक के अनुसार होगा, यदि नहीं, तो नवीनतम इंडेक्स किया गया ब्लॉक उपयोग किया जाएगा। यदि प्रदान किया जाता है, तो ब्लॉक को Subgraph के प्रारंभिक ब्लॉक के बाद और सबसे हाल ही में इंडेक्स किए गए ब्लॉक के बराबर या उससे कम होना चाहिए। - -deployment एक विशिष्ट ID है, जो subgraph.yaml फ़ाइल के IPFS CID के अनुरूप है। - -block नवीनतम ब्लॉक के बारे में जानकारी प्रदान करता है (किसी भी ब्लॉक सीमाओं को ध्यान में रखते हुए जो कि _meta में पास की जाती हैं): +Metadata fields: + +- `deployment`: IPFS CID of the subgraph.yaml +- `block`: Latest block information +- `hasIndexingErrors`: Boolean indicating past indexing errors + +> Note: When writing queries, it is important to consider the performance impact of using the `or` operator. While `or` can be a useful tool for broadening search results, it can also have significant costs. One of the main issues with `or` is that it can cause queries to slow down. This is because `or` requires the database to scan through multiple indexes, which can be a time-consuming process. To avoid these issues, it is recommended that developers use `and` operators instead of `or` whenever possible. This allows for more precise filtering and can lead to faster, more accurate queries. + +### GraphQL Filter Operators Reference + +This table explains each filter operator available in The Graph's GraphQL API. These operators are used as suffixes to field names when filtering data using the `where` parameter. + +| ऑपरेटर | Description | उदाहरण | +| ------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------- | +| `_` | Matches entities where the specified field equals another entity | `{ where: { owner_: { name: "Alice" } } }` | +| `_not` | Negates the specified condition | `{ where: { active_not: true } }` | +| `_gt` | Greater than (>) | `{ where: { price_gt: "100" } }` | +| `_lt` | Less than (`\<`) | `{ where: { price_lt: "100" } }` | +| `_gte` | Greater than or equal to (>=) | `{ where: { price_gte: "100" } }` | +| `_lte` | Less than or equal to (`\<=`) | `{ where: { price_lte: "100" } }` | +| `_in` | Value is in the specified array | `{ where: { category_in: ["Art", "Music"] } }` | +| `_not_in` | Value is not in the specified array | `{ where: { category_not_in: ["Art", "Music"] } }` | +| `_contains` | Field contains the specified string (case-sensitive) | `{ where: { name_contains: "token" } }` | +| `_contains_nocase` | Field contains the specified string (case-insensitive) | `{ where: { name_contains_nocase: "token" } }` | +| `_not_contains` | Field does not contain the specified string (case-sensitive) | `{ where: { name_not_contains: "test" } }` | +| `_not_contains_nocase` | Field does not contain the specified string (case-insensitive) | `{ where: { name_not_contains_nocase: "test" } }` | +| `_starts_with` | Field starts with the specified string (case-sensitive) | `{ where: { name_starts_with: "Crypto" } }` | +| `_starts_with_nocase` | Field starts with the specified string (case-insensitive) | `{ where: { name_starts_with_nocase: "crypto" } }` | +| `_ends_with` | Field ends with the specified string (case-sensitive) | `{ where: { name_ends_with: "Token" } }` | +| `_ends_with_nocase` | Field ends with the specified string (case-insensitive) | `{ where: { name_ends_with_nocase: "token" } }` | +| `_not_starts_with` | Field does not start with the specified string (case-sensitive) | `{ where: { name_not_starts_with: "Test" } }` | +| `_not_starts_with_nocase` | Field does not start with the specified string (case-insensitive) | `{ where: { name_not_starts_with_nocase: "test" } }` | +| `_not_ends_with` | Field does not end with the specified string (case-sensitive) | `{ where: { name_not_ends_with: "Test" } }` | +| `_not_ends_with_nocase` | Field does not end with the specified string (case-insensitive) | `{ where: { name_not_ends_with_nocase: "test" } }` | + +#### Notes + +- Type support varies by operator. For example, `Boolean` only supports `_not`, `_in`, and `_not_in`. +- The `_` operator is only available for object and interface types. +- String comparison operators are especially useful for text fields. +- Numeric comparison operators work with both number and string-encoded number fields. +- Use these operators in combination with logical operators (`and`, `or`) for complex filtering. -- हैश: ब्लॉक का हैश -- नंबर: ब्लॉक नंबर -- टाइमस्टैम्प: यदि उपलब्ध हो, तो ब्लॉक का टाइमस्टैम्प (यह वर्तमान में केवल EVM नेटवर्क को इंडेक्स करने वाले Subgraphs के लिए उपलब्ध है) +### मान्यकरण -`hasIndexingErrors` एक boolean है जो यह पहचानता है कि Subgraph को किसी पिछले block पर Indexing errors का सामना करना पड़ा था। +Graph Node अपने द्वारा प्राप्त GraphQL क्वेरी की स्पेसिफिकेशन-आधारित(https://spec.graphql.org/October2021/#sec-Validation) वैलिडेशन करता है, जो graphql-tools-rs(https://github.com/dotansimha/graphql-tools-rs#validation-rules) पर आधारित है, जो graphql-js संदर्भ कार्यान्वयन(https://github.com/graphql/graphql-js/tree/main/src/validation) पर आधारित है। क्वेरी जो वैलिडेशन नियम में विफल होती हैं, वे एक मानक त्रुटि के साथ विफल होती हैं - अधिक जानने के लिए GraphQL स्पेसिफिकेशन(https://spec.graphql.org/October2021/#sec-Validation) पर जाएं। From 5fac5a1569268b96be2d943c86abbfdba8c65cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Wed, 28 May 2025 16:26:01 -0400 Subject: [PATCH 1184/1709] New translations from-an-application.mdx (Hindi) --- .../pages/hi/subgraphs/querying/from-an-application.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/website/src/pages/hi/subgraphs/querying/from-an-application.mdx b/website/src/pages/hi/subgraphs/querying/from-an-application.mdx index 32d14acb5375..4ebf7cf278db 100644 --- a/website/src/pages/hi/subgraphs/querying/from-an-application.mdx +++ b/website/src/pages/hi/subgraphs/querying/from-an-application.mdx @@ -11,7 +11,8 @@ sidebarTitle: App से Query करना ### सबग्राफ Studio Endpoint -अपने Subgraph को Subgraph Studio पर deploy करने के बाद, आपको एक endpoint मिलेगा जो इस प्रकार दिखेगा: (https://api.thegraph.com/subgraphs/name/YOUR_SUBGRAPH_NAME) +अपने Subgraph को Subgraph Studio पर deploy करने के बाद, आपको एक endpoint मिलेगा जो इस प्रकार दिखेगा: +(https://api.thegraph.com/subgraphs/name/YOUR_SUBGRAPH_NAME) ``` https://api.studio.thegraph.com/query/// @@ -37,7 +38,7 @@ The Graph अपना खुद का GraphQL क्लाइंट, graph-cli - Cross-chain Subgraph Handling: एक ही query में multiple Subgraphs से data प्राप्त करना - [स्वचालित ब्लॉक ट्रैकिंग](https://github.com/graphprotocol/graph-client/blob/main/packages/block-tracking/README.md) -- [स्वचालित Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) +- [स्वचालित Pagination](https://github.com/graphprotocol/graph-client/blob/main/packages/auto-pagination/README.md) - पूरी तरह से टाइप किया गया परिणाम > नोट: `graph-client` अन्य लोकप्रिय GraphQL क्लाइंट जैसे Apollo और URQL के साथ एकीकृत है, जो React, Angular, Node.js और React Native जैसे परिवेशों के अनुकूल हैं। परिणामस्वरूप, `graph-client` का उपयोग करने से The Graph के साथ काम करने के लिए आपको एक उन्नत अनुभव मिलेगा। @@ -247,7 +248,7 @@ client }) ``` -### URQL अवलोकन +### URQL अवलोकन [URQL](https://formidable.com/open-source/urql/) Node.js, React/Preact, Vue और Svelte वातावरण के भीतर उपलब्ध है, जिसमें कुछ अधिक उन्नत सुविधाएँ शामिल हैं: - From 775a267754a3c7a329d19da0eb7bc147dccc6b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:08 -0400 Subject: [PATCH 1185/1709] New translations index.json (Romanian) --- website/src/pages/ro/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ro/index.json b/website/src/pages/ro/index.json index 8893031ab220..600cee955a88 100644 --- a/website/src/pages/ro/index.json +++ b/website/src/pages/ro/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgrafuri", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From b389d1057188291e30e0a5c284575bc6a86a0da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:09 -0400 Subject: [PATCH 1186/1709] New translations changelog.md (Romanian) --- .../ro/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ro/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ro/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ro/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ro/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 315e573771501d0db03506212372f7c03c9b3090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:11 -0400 Subject: [PATCH 1187/1709] New translations index.json (French) --- website/src/pages/fr/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/fr/index.json b/website/src/pages/fr/index.json index 9a02e3d03d6f..826423a01378 100644 --- a/website/src/pages/fr/index.json +++ b/website/src/pages/fr/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Nœud de The Graph", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 73e831fe3945c43d7308cdaad3bebf2b821fdc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:12 -0400 Subject: [PATCH 1188/1709] New translations changelog.md (French) --- .../fr/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/fr/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/fr/subgraphs/developing/creating/graph-ts/CHANGELOG.md index e1411a2c1465..04cb4a8d91ec 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/fr/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Changements dans les correctifs + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From c10e137557d4e9ff73179cdd0e94a54199b28fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:13 -0400 Subject: [PATCH 1189/1709] New translations index.json (Spanish) --- website/src/pages/es/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/es/index.json b/website/src/pages/es/index.json index 921acbc3d2a5..994df39a0a99 100644 --- a/website/src/pages/es/index.json +++ b/website/src/pages/es/index.json @@ -19,10 +19,10 @@ "description": "Obtén y consume datos de blockchain con ejecución paralela.", "cta": "Desarrolla con Substreams" }, - "sps": { - "title": "Subgrafos impulsados por Substreams", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Configura un subgrafo impulsado por Substreams" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgrafos", "substreams": "Corrientes secundarias", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From aa7dae6145c6b0ebaacc8c51bfaabe0eda77963c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:14 -0400 Subject: [PATCH 1190/1709] New translations changelog.md (Spanish) --- .../es/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/es/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/es/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/es/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/es/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 2cd24edc110aea726e7aea87bc97aff6643782c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:16 -0400 Subject: [PATCH 1191/1709] New translations index.json (Arabic) --- website/src/pages/ar/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ar/index.json b/website/src/pages/ar/index.json index e26aa5f61165..152082b1e090 100644 --- a/website/src/pages/ar/index.json +++ b/website/src/pages/ar/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "متعدد-السلاسل", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 8753668e219aa55b4d15044214e0bd9e56135608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:17 -0400 Subject: [PATCH 1192/1709] New translations changelog.md (Arabic) --- .../ar/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ar/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ar/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ar/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ar/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From c22dc3674e48cec73ec392150163f39ba7c37d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:18 -0400 Subject: [PATCH 1193/1709] New translations index.json (Czech) --- website/src/pages/cs/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/cs/index.json b/website/src/pages/cs/index.json index c2b98123b2f8..16226c8bfe42 100644 --- a/website/src/pages/cs/index.json +++ b/website/src/pages/cs/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Uzel Graf", @@ -70,7 +70,7 @@ "subgraphs": "Podgrafy", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From cca68301920097338d7269c942b4fca51fc1ccd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:19 -0400 Subject: [PATCH 1194/1709] New translations changelog.md (Czech) --- .../cs/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/cs/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/cs/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/cs/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/cs/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 2dae74f14736100f8fb1c7a4293994e05b27945d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:20 -0400 Subject: [PATCH 1195/1709] New translations index.json (German) --- website/src/pages/de/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/de/index.json b/website/src/pages/de/index.json index 2bc35f433737..eff1a561943c 100644 --- a/website/src/pages/de/index.json +++ b/website/src/pages/de/index.json @@ -19,10 +19,10 @@ "description": "Abrufen und Konsumieren von Blockchain-Daten mit paralleler Ausführung.", "cta": "Entwickeln mit Substreams" }, - "sps": { - "title": "Substreams-getriebene Subgraphen", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Einrichten eines Substreams-powered Subgraphen" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph-Knoten", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From c4bd25ad2f10c0b4d2a149b1768b4d1c89ed9746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:22 -0400 Subject: [PATCH 1196/1709] New translations changelog.md (German) --- .../de/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/de/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/de/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 9dace9f39aaf..89111c270bba 100644 --- a/website/src/pages/de/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/de/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch-Änderungen + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Geringfügige Änderungen From 376dcba6409954185839aedd242677f75502203e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:23 -0400 Subject: [PATCH 1197/1709] New translations index.json (Italian) --- website/src/pages/it/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/it/index.json b/website/src/pages/it/index.json index a3e1f199da24..552a73bada6e 100644 --- a/website/src/pages/it/index.json +++ b/website/src/pages/it/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 8c7df499e97332b858b492f73f2595f0547846c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:24 -0400 Subject: [PATCH 1198/1709] New translations changelog.md (Italian) --- .../it/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/it/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/it/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/it/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/it/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 65c24712dd8ac4ee95180dec35b7bd6a5b7ab188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:25 -0400 Subject: [PATCH 1199/1709] New translations index.json (Japanese) --- website/src/pages/ja/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ja/index.json b/website/src/pages/ja/index.json index 589057c828e9..d8e4d61a2361 100644 --- a/website/src/pages/ja/index.json +++ b/website/src/pages/ja/index.json @@ -19,10 +19,10 @@ "description": "並列実行でブロックチェーンのデータを取得し、使用できます。", "cta": "サブストリームを使用する" }, - "sps": { - "title": "サブストリームを用いたサブグラフ", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "サブストリームを用いたサブグラフの設定を行う" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "グラフノード", @@ -70,7 +70,7 @@ "subgraphs": "サブグラフ", "substreams": "サブストリーム", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From e760d31442b886e9113d1b9686720429c7663f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:27 -0400 Subject: [PATCH 1200/1709] New translations changelog.md (Japanese) --- .../ja/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ja/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ja/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ja/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ja/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From e99c47e88aecece17ae254164d91f79c7d560d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:28 -0400 Subject: [PATCH 1201/1709] New translations index.json (Korean) --- website/src/pages/ko/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ko/index.json b/website/src/pages/ko/index.json index 59e8e3dc4c44..10c2f88a914d 100644 --- a/website/src/pages/ko/index.json +++ b/website/src/pages/ko/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 1e4b66341834629cd997c83f5aefd81c86f66cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:29 -0400 Subject: [PATCH 1202/1709] New translations changelog.md (Korean) --- .../ko/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ko/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ko/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ko/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ko/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From b9605641be4d8ecabbe6308cdca96c60f5ecf2b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:30 -0400 Subject: [PATCH 1203/1709] New translations index.json (Dutch) --- website/src/pages/nl/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/nl/index.json b/website/src/pages/nl/index.json index 2abb81fe6aac..62bb44ece478 100644 --- a/website/src/pages/nl/index.json +++ b/website/src/pages/nl/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 705a1371f4b1bb8d498eb4cdc133369ac534e255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:31 -0400 Subject: [PATCH 1204/1709] New translations changelog.md (Dutch) --- .../nl/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/nl/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/nl/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/nl/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/nl/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From c34d0ed23169215838cf2a4bf68e384451115ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:32 -0400 Subject: [PATCH 1205/1709] New translations index.json (Polish) --- website/src/pages/pl/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/pl/index.json b/website/src/pages/pl/index.json index fe69cac3c6b7..40d244d7fbe3 100644 --- a/website/src/pages/pl/index.json +++ b/website/src/pages/pl/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgrafy", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 67aba1d5d2c825fe8940c702719f057d44b2921f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:34 -0400 Subject: [PATCH 1206/1709] New translations changelog.md (Polish) --- .../pl/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/pl/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/pl/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/pl/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/pl/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From ba82e607ab3fdfa2b1b14ff609f90a810544d3b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:35 -0400 Subject: [PATCH 1207/1709] New translations index.json (Portuguese) --- website/src/pages/pt/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/pt/index.json b/website/src/pages/pt/index.json index 19e12670e0bf..8f2d651f0459 100644 --- a/website/src/pages/pt/index.json +++ b/website/src/pages/pt/index.json @@ -19,10 +19,10 @@ "description": "Solicite e consuma dados de blockchain com execução paralela.", "cta": "Programe com Substreams" }, - "sps": { - "title": "Subgraphs movidos por Substreams", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Monte um subgraph movido pelo Substreams" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 5895d2bc67c334ecdb92b09fccf5883882d64766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:36 -0400 Subject: [PATCH 1208/1709] New translations changelog.md (Portuguese) --- .../pt/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/pt/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/pt/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/pt/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/pt/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From cbac5a3bbd573de6c406bd46d41849583b5eafbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:37 -0400 Subject: [PATCH 1209/1709] New translations index.json (Russian) --- website/src/pages/ru/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ru/index.json b/website/src/pages/ru/index.json index 41a841b6be9a..c22d10e24e6c 100644 --- a/website/src/pages/ru/index.json +++ b/website/src/pages/ru/index.json @@ -19,10 +19,10 @@ "description": "Получение и потребление данных блокчейна с параллельным исполнением.", "cta": "Разработка с использованием Субпотоков" }, - "sps": { - "title": "Субграфы, работающие на основе субпотоков", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Настройка субграфа, работающего на основе Субпотоков" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Субграфы", "substreams": "Субпотоки", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 2a0c567f6e955c27714554278c30ab2b92325e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:38 -0400 Subject: [PATCH 1210/1709] New translations changelog.md (Russian) --- .../ru/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ru/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ru/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ru/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ru/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From b585533c0e4ee6211ffa0bcf9571ce9a4bf01353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:40 -0400 Subject: [PATCH 1211/1709] New translations index.json (Swedish) --- website/src/pages/sv/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/sv/index.json b/website/src/pages/sv/index.json index 3f84b3b849b4..2af3effa2fd4 100644 --- a/website/src/pages/sv/index.json +++ b/website/src/pages/sv/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graf Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgrafer", "substreams": "Underströmmar", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From bf2d92169b026328d4f569ae4e2a3026703984f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:41 -0400 Subject: [PATCH 1212/1709] New translations changelog.md (Swedish) --- .../sv/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/sv/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/sv/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/sv/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/sv/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 362c8d3bb601631845a78a1fe214fbb792448675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:42 -0400 Subject: [PATCH 1213/1709] New translations index.json (Turkish) --- website/src/pages/tr/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/tr/index.json b/website/src/pages/tr/index.json index b4ccaa3a9195..b34814be0dd0 100644 --- a/website/src/pages/tr/index.json +++ b/website/src/pages/tr/index.json @@ -19,10 +19,10 @@ "description": "Blokzinciri verilerini paralel çalıştırma ile alın ve tüketin.", "cta": "Substreams'le geliştirin" }, - "sps": { - "title": "Substreams Destekli Subgraph'ler", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Substreams destekli bir subgraph kurun" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraph'ler", "substreams": "Substream'ler", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 3daca976fe17dd10fa05b66585ed1c65e92a27c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:43 -0400 Subject: [PATCH 1214/1709] New translations changelog.md (Turkish) --- .../tr/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/tr/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/tr/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/tr/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/tr/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 0968c9d10996979c4c897a2a3087e0b3cd290144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:44 -0400 Subject: [PATCH 1215/1709] New translations index.json (Ukrainian) --- website/src/pages/uk/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/uk/index.json b/website/src/pages/uk/index.json index 9835101379a4..b48d269b17c5 100644 --- a/website/src/pages/uk/index.json +++ b/website/src/pages/uk/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Підграфи", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From f89e67fe9ef97089cec7639f4a763b83b2d38488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:46 -0400 Subject: [PATCH 1216/1709] New translations changelog.md (Ukrainian) --- .../uk/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/uk/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/uk/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/uk/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/uk/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 4700df2b5f2e54cebbec5ab35c2761dfba317b9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:47 -0400 Subject: [PATCH 1217/1709] New translations index.json (Chinese Simplified) --- website/src/pages/zh/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/zh/index.json b/website/src/pages/zh/index.json index 4bcbbdc1fce9..ad9889b215ff 100644 --- a/website/src/pages/zh/index.json +++ b/website/src/pages/zh/index.json @@ -19,10 +19,10 @@ "description": "通过并行执行获取和消耗区块链数据。", "cta": "开发子流" }, - "sps": { - "title": "Substreams驱动的子图", - "description": "使用子流提高子图的效率和可扩展性。", - "cta": "设置一个Substreams驱动的子图" + "tokenApi": { + "title": "代币 API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph 节点", @@ -70,7 +70,7 @@ "subgraphs": "子图", "substreams": "子流", "firehose": "Firehose", - "tokenapi": "代币 API" + "tokenApi": "代币 API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 61fe54f438b441b4eba7f9d0033912ef5b488142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:48 -0400 Subject: [PATCH 1218/1709] New translations changelog.md (Chinese Simplified) --- .../zh/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/zh/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/zh/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 20c96b935045..7349928a0860 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/zh/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### 补丁更改 + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### 微小变化 From c794a6706b966861449dd999d9704ad0d3e642c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:50 -0400 Subject: [PATCH 1219/1709] New translations index.json (Urdu (Pakistan)) --- website/src/pages/ur/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/ur/index.json b/website/src/pages/ur/index.json index 16ad53e143ff..329b94132247 100644 --- a/website/src/pages/ur/index.json +++ b/website/src/pages/ur/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "گراف نوڈ", @@ -70,7 +70,7 @@ "subgraphs": "سب گراف", "substreams": "سب سٹریمز", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From a5792b7b6c059e516d8eb1f65f29987c516ffd08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:51 -0400 Subject: [PATCH 1220/1709] New translations changelog.md (Urdu (Pakistan)) --- .../ur/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/ur/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/ur/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/ur/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/ur/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From c1a717fb6193b9362d45af16018bfd8bb480230f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:52 -0400 Subject: [PATCH 1221/1709] New translations index.json (Vietnamese) --- website/src/pages/vi/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/vi/index.json b/website/src/pages/vi/index.json index e9cddd69d9ef..4f342d7860fb 100644 --- a/website/src/pages/vi/index.json +++ b/website/src/pages/vi/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "Subgraphs", "substreams": "Substreams", "firehose": "Firehose", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 5fa22453edd9bb752152d853f1564f3f6f171b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:53 -0400 Subject: [PATCH 1222/1709] New translations changelog.md (Vietnamese) --- .../vi/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/vi/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/vi/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/vi/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/vi/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From ae1ee03b93ed574ca4b7c1291f68a9a984298e5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:54 -0400 Subject: [PATCH 1223/1709] New translations index.json (Marathi) --- website/src/pages/mr/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/mr/index.json b/website/src/pages/mr/index.json index ab39f74bbdf9..01a6ae0d73af 100644 --- a/website/src/pages/mr/index.json +++ b/website/src/pages/mr/index.json @@ -19,10 +19,10 @@ "description": "Fetch and consume blockchain data with parallel execution.", "cta": "Develop with Substreams" }, - "sps": { - "title": "Substreams-Powered Subgraphs", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "Set up a Substreams-powered subgraph" + "tokenApi": { + "title": "Token API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "आलेख नोड", @@ -70,7 +70,7 @@ "subgraphs": "सबग्राफ", "substreams": "उपप्रवाह", "firehose": "फायरहोस", - "tokenapi": "Token API" + "tokenApi": "Token API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From 83e8d8f2207b791760e6d4864c056d049e95971d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:56 -0400 Subject: [PATCH 1224/1709] New translations changelog.md (Marathi) --- .../mr/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/mr/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/mr/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/mr/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/mr/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 70ebab4a2539ef27fdacccce913fbed9081c5267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:57 -0400 Subject: [PATCH 1225/1709] New translations index.json (Hindi) --- website/src/pages/hi/index.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/pages/hi/index.json b/website/src/pages/hi/index.json index 14a53be3ec2c..2857505765de 100644 --- a/website/src/pages/hi/index.json +++ b/website/src/pages/hi/index.json @@ -19,10 +19,10 @@ "description": "ब्लॉकचेन डेटा प्राप्त करें और समानांतर निष्पादन के साथ उपयोग करें।", "cta": "सबस्ट्रीम के साथ विकसित करें" }, - "sps": { - "title": "सबस्ट्रीम पावर्ड सबग्राफ", - "description": "Boost your subgraph's efficiency and scalability by using Substreams.", - "cta": "सबस्ट्रीम-संचालित सबग्राफ सेट करें" + "tokenApi": { + "title": "टोकन API", + "description": "Query token data and leverage native MCP support.", + "cta": "Develop with Token API" }, "graphNode": { "title": "Graph Node", @@ -70,7 +70,7 @@ "subgraphs": "सबग्राफ", "substreams": "सबस्ट्रीम", "firehose": "Firehose", - "tokenapi": "टोकन API" + "tokenApi": "टोकन API" } }, "networkGuides": { @@ -83,7 +83,7 @@ "title": "Substreams quick start", "description": "Stream high-speed data for real-time indexing." }, - "tokenapi": { + "tokenApi": { "title": "The Graph's Token API", "description": "Query token data and leverage native MCP support." }, From f8b0001c47c3a3e878aab3ec8b8a3ed35bdb0fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 09:58:58 -0400 Subject: [PATCH 1226/1709] New translations changelog.md (Hindi) --- .../hi/subgraphs/developing/creating/graph-ts/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/src/pages/hi/subgraphs/developing/creating/graph-ts/CHANGELOG.md b/website/src/pages/hi/subgraphs/developing/creating/graph-ts/CHANGELOG.md index 5f964d3cbb78..edc1d88dc6cf 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/graph-ts/CHANGELOG.md +++ b/website/src/pages/hi/subgraphs/developing/creating/graph-ts/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphprotocol/graph-ts +## 0.38.1 + +### Patch Changes + +- [#2006](https://github.com/graphprotocol/graph-tooling/pull/2006) [`3fb730b`](https://github.com/graphprotocol/graph-tooling/commit/3fb730bdaf331f48519e1d9fdea91d2a68f29fc9) Thanks [@YaroShkvorets](https://github.com/YaroShkvorets)! - fix global variables in wasm + ## 0.38.0 ### Minor Changes From 21f5b64e0575e470e4f2ab89d37fedf8f56e7e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:34 -0400 Subject: [PATCH 1227/1709] New translations quick-start.mdx (Romanian) --- website/src/pages/ro/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/quick-start.mdx b/website/src/pages/ro/token-api/quick-start.mdx index e49256d29a6d..5b3d052d9ec5 100644 --- a/website/src/pages/ro/token-api/quick-start.mdx +++ b/website/src/pages/ro/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From a22e373a636995234338a835700ca0a7108c1048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:35 -0400 Subject: [PATCH 1228/1709] New translations faq.mdx (Romanian) --- website/src/pages/ro/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ro/token-api/faq.mdx b/website/src/pages/ro/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/ro/token-api/faq.mdx +++ b/website/src/pages/ro/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 9c0b5e2c67f8ed443a60834e8cbcdaa1f1882a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:37 -0400 Subject: [PATCH 1229/1709] New translations quick-start.mdx (French) --- website/src/pages/fr/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/quick-start.mdx b/website/src/pages/fr/token-api/quick-start.mdx index 6ab65ce4c573..81289c5353bd 100644 --- a/website/src/pages/fr/token-api/quick-start.mdx +++ b/website/src/pages/fr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Démarrage rapide The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prérequis @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From c1f9ad128cd67ce991c4e8bf5e7fc6c39a80dfed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:38 -0400 Subject: [PATCH 1230/1709] New translations faq.mdx (French) --- website/src/pages/fr/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/fr/token-api/faq.mdx b/website/src/pages/fr/token-api/faq.mdx index 5b7dff514baf..af2366f17557 100644 --- a/website/src/pages/fr/token-api/faq.mdx +++ b/website/src/pages/fr/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Général -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From a395a315a2896b261a192a07df1b23ca9da22e8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:39 -0400 Subject: [PATCH 1231/1709] New translations quick-start.mdx (Spanish) --- website/src/pages/es/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/quick-start.mdx b/website/src/pages/es/token-api/quick-start.mdx index 74c1089a3314..09e35405aaa3 100644 --- a/website/src/pages/es/token-api/quick-start.mdx +++ b/website/src/pages/es/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Comienzo Rapido The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 0f3ee4c0e1ca9e3f88eaa7833d094882d23a3e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:40 -0400 Subject: [PATCH 1232/1709] New translations faq.mdx (Spanish) --- website/src/pages/es/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/es/token-api/faq.mdx b/website/src/pages/es/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/es/token-api/faq.mdx +++ b/website/src/pages/es/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From dc5c421eadfe08eb5a28da31f282a21c34c39936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:42 -0400 Subject: [PATCH 1233/1709] New translations quick-start.mdx (Arabic) --- website/src/pages/ar/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/quick-start.mdx b/website/src/pages/ar/token-api/quick-start.mdx index 139c735421a8..c784bb744650 100644 --- a/website/src/pages/ar/token-api/quick-start.mdx +++ b/website/src/pages/ar/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: بداية سريعة The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 88353ab0f0cd69b3eac68ce7cfaba7c7fa412776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:43 -0400 Subject: [PATCH 1234/1709] New translations faq.mdx (Arabic) --- website/src/pages/ar/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ar/token-api/faq.mdx b/website/src/pages/ar/token-api/faq.mdx index 33b75660284d..e130a8baf710 100644 --- a/website/src/pages/ar/token-api/faq.mdx +++ b/website/src/pages/ar/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## عام -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 578044e0203f831025f261a1d366dd64248c604a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:45 -0400 Subject: [PATCH 1235/1709] New translations quick-start.mdx (Czech) --- website/src/pages/cs/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/quick-start.mdx b/website/src/pages/cs/token-api/quick-start.mdx index caadce5531e1..8102fae89beb 100644 --- a/website/src/pages/cs/token-api/quick-start.mdx +++ b/website/src/pages/cs/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Rychlé spuštění The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 318537ceecf36f754aebd4c766355210dce7e929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:46 -0400 Subject: [PATCH 1236/1709] New translations faq.mdx (Czech) --- website/src/pages/cs/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/cs/token-api/faq.mdx b/website/src/pages/cs/token-api/faq.mdx index 41ffe213084e..d94b110ff682 100644 --- a/website/src/pages/cs/token-api/faq.mdx +++ b/website/src/pages/cs/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Obecný -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From ddcc452db5250ab6f6ce66a6a5cffdbbff74912f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:47 -0400 Subject: [PATCH 1237/1709] New translations quick-start.mdx (German) --- website/src/pages/de/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/quick-start.mdx b/website/src/pages/de/token-api/quick-start.mdx index 489da5b14760..4b792fc2b85b 100644 --- a/website/src/pages/de/token-api/quick-start.mdx +++ b/website/src/pages/de/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Schnellstart The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Voraussetzungen @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 051bcd4b51a03f0fac04da8bfce48d7ea7687ac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:49 -0400 Subject: [PATCH 1238/1709] New translations faq.mdx (German) --- website/src/pages/de/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/de/token-api/faq.mdx b/website/src/pages/de/token-api/faq.mdx index 166104ef5562..16e661cf61ec 100644 --- a/website/src/pages/de/token-api/faq.mdx +++ b/website/src/pages/de/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Allgemein -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 538d7475ebd96f8ae92afc6dcbe492c786b1cd00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:50 -0400 Subject: [PATCH 1239/1709] New translations quick-start.mdx (Italian) --- website/src/pages/it/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/quick-start.mdx b/website/src/pages/it/token-api/quick-start.mdx index e49256d29a6d..5b3d052d9ec5 100644 --- a/website/src/pages/it/token-api/quick-start.mdx +++ b/website/src/pages/it/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 2990be68e0bf6cc1b503c4f679f76b71ff4b3b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:51 -0400 Subject: [PATCH 1240/1709] New translations faq.mdx (Italian) --- website/src/pages/it/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/it/token-api/faq.mdx b/website/src/pages/it/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/it/token-api/faq.mdx +++ b/website/src/pages/it/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 077aa611fb5b11edd982026572aa1778984c1b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:53 -0400 Subject: [PATCH 1241/1709] New translations quick-start.mdx (Japanese) --- website/src/pages/ja/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/quick-start.mdx b/website/src/pages/ja/token-api/quick-start.mdx index 494ca60a4c1f..f7707d1e33ef 100644 --- a/website/src/pages/ja/token-api/quick-start.mdx +++ b/website/src/pages/ja/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: クイックスタート The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 6f6787ffdebab66865ae6b2594872518a7dd2ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:54 -0400 Subject: [PATCH 1242/1709] New translations faq.mdx (Japanese) --- website/src/pages/ja/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ja/token-api/faq.mdx b/website/src/pages/ja/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/ja/token-api/faq.mdx +++ b/website/src/pages/ja/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 3e7579a6a7d95f708a2fa119e30c5435943baeac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:55 -0400 Subject: [PATCH 1243/1709] New translations quick-start.mdx (Korean) --- website/src/pages/ko/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/quick-start.mdx b/website/src/pages/ko/token-api/quick-start.mdx index e49256d29a6d..5b3d052d9ec5 100644 --- a/website/src/pages/ko/token-api/quick-start.mdx +++ b/website/src/pages/ko/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From d23e0472f2fde68c69893b7121ddadf5d53561f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:57 -0400 Subject: [PATCH 1244/1709] New translations faq.mdx (Korean) --- website/src/pages/ko/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ko/token-api/faq.mdx b/website/src/pages/ko/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/ko/token-api/faq.mdx +++ b/website/src/pages/ko/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 34b1ad6bf28d13a6eee6dde5eb40150a02a9d2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:54:59 -0400 Subject: [PATCH 1245/1709] New translations quick-start.mdx (Dutch) --- website/src/pages/nl/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/quick-start.mdx b/website/src/pages/nl/token-api/quick-start.mdx index 276fcc065ba3..8158f6b451ed 100644 --- a/website/src/pages/nl/token-api/quick-start.mdx +++ b/website/src/pages/nl/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Snelle Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 11448d0f48f2081a3578f16ff806bf134221bc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:00 -0400 Subject: [PATCH 1246/1709] New translations faq.mdx (Dutch) --- website/src/pages/nl/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/nl/token-api/faq.mdx b/website/src/pages/nl/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/nl/token-api/faq.mdx +++ b/website/src/pages/nl/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 808e1c278f91c380a75d44f215ee64db22b82aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:02 -0400 Subject: [PATCH 1247/1709] New translations quick-start.mdx (Polish) --- website/src/pages/pl/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/quick-start.mdx b/website/src/pages/pl/token-api/quick-start.mdx index 98ed4f3fd724..cb0648b27ccb 100644 --- a/website/src/pages/pl/token-api/quick-start.mdx +++ b/website/src/pages/pl/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: " Na start" The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From aed793a268e7a23b219cf99bf537c2e3030b04c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:03 -0400 Subject: [PATCH 1248/1709] New translations faq.mdx (Polish) --- website/src/pages/pl/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/pl/token-api/faq.mdx b/website/src/pages/pl/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/pl/token-api/faq.mdx +++ b/website/src/pages/pl/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 08aac3c5672d947850c20c910f39e2f7f5101f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:04 -0400 Subject: [PATCH 1249/1709] New translations quick-start.mdx (Portuguese) --- website/src/pages/pt/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/quick-start.mdx b/website/src/pages/pt/token-api/quick-start.mdx index fe1907483c23..e79eae711c4d 100644 --- a/website/src/pages/pt/token-api/quick-start.mdx +++ b/website/src/pages/pt/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Começo Rápido The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Pré-requisitos @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 2c6b5db9a5a08e83686a5f969fb662d36cd2215f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:06 -0400 Subject: [PATCH 1250/1709] New translations faq.mdx (Portuguese) --- website/src/pages/pt/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/pt/token-api/faq.mdx b/website/src/pages/pt/token-api/faq.mdx index 8fa2afd7fa9b..2b7506803575 100644 --- a/website/src/pages/pt/token-api/faq.mdx +++ b/website/src/pages/pt/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Geral -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 7ce9f9cd2ff1eaef5ea4ccb10c7e5d9890c5d718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:07 -0400 Subject: [PATCH 1251/1709] New translations quick-start.mdx (Russian) --- website/src/pages/ru/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/quick-start.mdx b/website/src/pages/ru/token-api/quick-start.mdx index 0930c3ceab94..c85ddfedcc2e 100644 --- a/website/src/pages/ru/token-api/quick-start.mdx +++ b/website/src/pages/ru/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Быстрый старт The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Предварительные требования @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 287ca851acafb96b83892eac4b075d5c91d03aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:09 -0400 Subject: [PATCH 1252/1709] New translations faq.mdx (Russian) --- website/src/pages/ru/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ru/token-api/faq.mdx b/website/src/pages/ru/token-api/faq.mdx index 563e5eeb54ba..7d9b63d83b81 100644 --- a/website/src/pages/ru/token-api/faq.mdx +++ b/website/src/pages/ru/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Общая информация -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 87805827c32aebb88add741ed679b1b5cf116eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:11 -0400 Subject: [PATCH 1253/1709] New translations quick-start.mdx (Swedish) --- website/src/pages/sv/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/quick-start.mdx b/website/src/pages/sv/token-api/quick-start.mdx index 14d8f13e5df7..7638cb0faf6c 100644 --- a/website/src/pages/sv/token-api/quick-start.mdx +++ b/website/src/pages/sv/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Snabbstart The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From cbe1c714dae387ba321e68dc23a2c8543f981cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:12 -0400 Subject: [PATCH 1254/1709] New translations faq.mdx (Swedish) --- website/src/pages/sv/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/sv/token-api/faq.mdx b/website/src/pages/sv/token-api/faq.mdx index f8cc08f451f3..e4d02dd45133 100644 --- a/website/src/pages/sv/token-api/faq.mdx +++ b/website/src/pages/sv/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Allmän -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From cb9faefea86e626a92909dc1c98ac2d111cff99b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:14 -0400 Subject: [PATCH 1255/1709] New translations quick-start.mdx (Turkish) --- website/src/pages/tr/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/quick-start.mdx b/website/src/pages/tr/token-api/quick-start.mdx index 6b4c6f410687..494aea48c765 100644 --- a/website/src/pages/tr/token-api/quick-start.mdx +++ b/website/src/pages/tr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Hızlı Başlangıç The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 652d96f7c7c4990c68484ea74738746da454a768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:15 -0400 Subject: [PATCH 1256/1709] New translations faq.mdx (Turkish) --- website/src/pages/tr/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/tr/token-api/faq.mdx b/website/src/pages/tr/token-api/faq.mdx index c933461e223d..fe1bfad37f20 100644 --- a/website/src/pages/tr/token-api/faq.mdx +++ b/website/src/pages/tr/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Genel -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From f51773f1c467533c1b39477915be5bec934734af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:16 -0400 Subject: [PATCH 1257/1709] New translations quick-start.mdx (Ukrainian) --- website/src/pages/uk/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/quick-start.mdx b/website/src/pages/uk/token-api/quick-start.mdx index 316cb901e8f6..c8cdb5f1f10c 100644 --- a/website/src/pages/uk/token-api/quick-start.mdx +++ b/website/src/pages/uk/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Швидкий старт The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From f14df73edf538388c9a91338782b0375c080a2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:18 -0400 Subject: [PATCH 1258/1709] New translations faq.mdx (Ukrainian) --- website/src/pages/uk/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/uk/token-api/faq.mdx b/website/src/pages/uk/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/uk/token-api/faq.mdx +++ b/website/src/pages/uk/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From b6b037402b7c7374140e3b84bfa26262eec008e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:19 -0400 Subject: [PATCH 1259/1709] New translations quick-start.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/quick-start.mdx b/website/src/pages/zh/token-api/quick-start.mdx index 9974b7bc59cf..2d43adb2f940 100644 --- a/website/src/pages/zh/token-api/quick-start.mdx +++ b/website/src/pages/zh/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: 快速开始 The Graph的 代币API允许您通过 GET 请求访问区块链代币信息。 本指南旨在帮助您快速将 Token API 整合到您的应用程序中。 -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## 先决条件 @@ -64,6 +64,20 @@ curl --request GET \ > 大多数类似Unix的系统都已预安装了 cURL 。对于Windows,您可能需要安装 cURL。 +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## 故障排除 如果API调用失败,请尝试打印完整的响应对象以获取额外的错误详细信息。例如: From 1b18c0588f3eefbfaa4f99d08fbd6e9368728998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:21 -0400 Subject: [PATCH 1260/1709] New translations faq.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/zh/token-api/faq.mdx b/website/src/pages/zh/token-api/faq.mdx index 3267bbd3cede..632b7d690042 100644 --- a/website/src/pages/zh/token-api/faq.mdx +++ b/website/src/pages/zh/token-api/faq.mdx @@ -6,9 +6,17 @@ title: 代币 API 常见问题 ## 通用 -### 代币 API 支持什么区块链? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ The Token API currently tracks prices on Uniswap v2 and Uniswap v3, with plans t 是的,正在计划进行改进以提供更接近链头的数据。欢迎反馈到 [Discord](https://discord.gg/graphprotocol)。 -### 是否计划支持诸如NFT等其他用途案例? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI 主题 @@ -68,9 +76,17 @@ Support for NFT endpoints is coming soon. The Graph ecosystem is actively determ 检查您是否包含了 `Authorization: Bearer ` 页眉和正确且未过期的代币。 常见问题包括使用 API 密钥而不是生成一个新的 JWT, 忘记“Bearer”前缀,使用不正确的代币,或完全省略标题。 请确保您复制JWT,正好像The Graph市场提供的。 +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -Beta期间,Token API 对授权的开发者是免费的。虽然特定的费率限制没有记录,但存在着合理的节奏来防止滥用。 高请求卷可能会触发HTTP 429 错误。请监视官方公告,以了解Beta以后未来的定价变化。 +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From a1803ae7e8bd88e1b66c98acbff87a77baefcd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:22 -0400 Subject: [PATCH 1261/1709] New translations quick-start.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/quick-start.mdx b/website/src/pages/ur/token-api/quick-start.mdx index e0a75ff01acf..db56a23a166f 100644 --- a/website/src/pages/ur/token-api/quick-start.mdx +++ b/website/src/pages/ur/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: فورا شروع کریں The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From 23bdb627d978af3c8b9046bcc783ffbfb95e334a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:24 -0400 Subject: [PATCH 1262/1709] New translations faq.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/ur/token-api/faq.mdx b/website/src/pages/ur/token-api/faq.mdx index abb7d8ddf9cc..3bf60c0cda8f 100644 --- a/website/src/pages/ur/token-api/faq.mdx +++ b/website/src/pages/ur/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## General -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 3111632e2b0ab04765d9d9903edc964844b9a4cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:25 -0400 Subject: [PATCH 1263/1709] New translations quick-start.mdx (Vietnamese) --- website/src/pages/vi/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/quick-start.mdx b/website/src/pages/vi/token-api/quick-start.mdx index 7d9e37531ca4..1b2a42aa08d2 100644 --- a/website/src/pages/vi/token-api/quick-start.mdx +++ b/website/src/pages/vi/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Bắt đầu nhanh The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From f72a7e86162b529f7c3bb8c9fb7ddc36a1471dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:27 -0400 Subject: [PATCH 1264/1709] New translations faq.mdx (Vietnamese) --- website/src/pages/vi/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/vi/token-api/faq.mdx b/website/src/pages/vi/token-api/faq.mdx index 3412c139b803..f9933048fca1 100644 --- a/website/src/pages/vi/token-api/faq.mdx +++ b/website/src/pages/vi/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## Khái quát -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 53b4ec60d7a2cfc8d38b470c00d5673cc21b2bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:28 -0400 Subject: [PATCH 1265/1709] New translations quick-start.mdx (Marathi) --- website/src/pages/mr/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/quick-start.mdx b/website/src/pages/mr/token-api/quick-start.mdx index 664228134ba7..3fe3ee67c0f7 100644 --- a/website/src/pages/mr/token-api/quick-start.mdx +++ b/website/src/pages/mr/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: क्विक स्टार्ट The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## Prerequisites @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From e6a37f1a52b49aa1d6e0064db66c8f96703a69a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:29 -0400 Subject: [PATCH 1266/1709] New translations faq.mdx (Marathi) --- website/src/pages/mr/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/mr/token-api/faq.mdx b/website/src/pages/mr/token-api/faq.mdx index 7aea56b5a147..2caacf015c98 100644 --- a/website/src/pages/mr/token-api/faq.mdx +++ b/website/src/pages/mr/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## सामान्य -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 087410ed3b1b0826e2834ff1b0744f95c150d10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:31 -0400 Subject: [PATCH 1267/1709] New translations quick-start.mdx (Hindi) --- website/src/pages/hi/token-api/quick-start.mdx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/quick-start.mdx b/website/src/pages/hi/token-api/quick-start.mdx index 6a1848aeda79..44779ab04196 100644 --- a/website/src/pages/hi/token-api/quick-start.mdx +++ b/website/src/pages/hi/token-api/quick-start.mdx @@ -9,7 +9,7 @@ sidebarTitle: Quick Start The Graph's Token API lets you access blockchain token information via a GET request. This guide is designed to help you quickly integrate the Token API into your application. -The Token API provides access to onchain token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. +The Token API provides access to onchain NFT and fungible token data, including live and historical balances, holders, prices, market data, token metadata, and token transfers. This API also uses the Model Context Protocol (MCP) to allow AI tools such as Claude to enrich raw blockchain data with contextual insights. ## आवश्यक शर्तें @@ -64,6 +64,20 @@ Make sure to replace `` with the JWT Token generated from your API key. > Most Unix-like systems come with cURL preinstalled. For Windows, you may need to install cURL. +## Chain and Feature Support + +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :---------: | :----------: | :------------: | +| Ethereum Mainnet | ✅ | ✅ | ✅ | +| BSC | ✅\* | ✅ | ✅ | +| Base | ✅ | ✅ | ✅ | +| Unichain | ✅ | ✅ | ✅ | +| Arbitrum-One | Ingesting\* | Ingesting\* | Ingesting\* | +| Optimism | ✅ | ✅ | ✅ | +| Polygon | ✅ | ✅ | ✅ | + +\*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. + ## Troubleshooting If the API call fails, try printing out the full response object for additional error details. For example: From a6f9243f20c4ee0fa057e7ba161f1a784f4dfb3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 13:55:32 -0400 Subject: [PATCH 1268/1709] New translations faq.mdx (Hindi) --- website/src/pages/hi/token-api/faq.mdx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/website/src/pages/hi/token-api/faq.mdx b/website/src/pages/hi/token-api/faq.mdx index e87bf359b77f..339e40f286e6 100644 --- a/website/src/pages/hi/token-api/faq.mdx +++ b/website/src/pages/hi/token-api/faq.mdx @@ -6,9 +6,17 @@ Get fast answers to easily integrate and scale with The Graph's high-performance ## आम -### What blockchains does the Token API support? +### Which blockchains are supported by the Token API? -Currently, the Token API supports Ethereum, Binance Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. +Currently, the Token API supports Ethereum, BNB Smart Chain (BSC), Polygon, Optimism, Base, Unichain, and Arbitrum One. + +### Does the Token API support NFTs? + +Yes, The Graph Token API currently supports ERC-721 and ERC-1155 NFT token standards, with support for additional NFT standards planned. Endpoints are offered for ownership, collection stats, metadata, sales, holders, and transfer activity. + +### Do NFTs include off-chain data? + +NFT endpoints currently only include on-chain data. To get off-chain data, use the IPFS or HTTP links included in the NFT item response. ### How do I authenticate requests to the Token API, and why doesn't my API key from The Graph Market work? @@ -42,9 +50,9 @@ Yes, more blockchains will be supported in the future. Please share feedback on Yes, improvements to provide data closer to the chain head are planned. Feedback is welcome on [Discord](https://discord.gg/graphprotocol). -### Are there plans to support additional use cases such as NFTs? +### Are there plans to support additional use cases? -Support for NFT endpoints is coming soon. The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). +The Graph ecosystem is actively determining the [roadmap](https://thegraph.com/blog/token-api-the-graph/) for additional use cases. Please provide feedback on specific features you would like prioritized on [Discord](https://discord.gg/graphprotocol). ## MCP / LLM / AI Topics @@ -68,9 +76,17 @@ You can find the code for the MCP client in [The Graph's repo](https://github.co Check that you included the `Authorization: Bearer ` header with the correct, non-expired token. Common issues include using the API key instead of generating a new JWT, forgetting the "Bearer" prefix, using an incorrect token, or omitting the header entirely. Ensure you copied the JWT exactly as provided by The Graph Market. +### Why am I getting 500 errors? + +Networks that are currently or temporarily unavailable on a given endpoint will return a `bad_database_response`, `Endpoint is currently not supported for this network` error. Databases that are in the process of ingestion will produce this response. + ### Are there rate limits or usage costs? -During Beta, the Token API is free for authorized developers. While specific rate limits aren't documented, reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. +During Beta, the Token API is free for authorized developers. There are no specific rate limits, but reasonable throttling exists to prevent abuse. High request volumes may trigger HTTP 429 errors. Monitor official announcements for future pricing changes after Beta. + +### What do I do if I notice data inconsistencies in the data returned by the Token API? + +If you notice data inconsistencies, please report the issue on our [Discord](https://discord.gg/graphprotocol). Identifying edge cases can help make sure all data is accurate and up-to-date. ### How do I specify a network? From 0db39a2e2fa787993d27c50cad9d660979019421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:26 -0400 Subject: [PATCH 1269/1709] New translations get-transfers-evm.mdx (Romanian) --- website/src/pages/ro/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ro/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 016100a84fed09d561de2cda1ac5dda9e095bb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:30 -0400 Subject: [PATCH 1270/1709] New translations get-nft-activities-evm.mdx (Romanian) --- .../pages/ro/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ro/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From fbbc39888cfcc47b9e5320ad27d7d002ae36e89c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:32 -0400 Subject: [PATCH 1271/1709] New translations get-nft-collections-evm-by-contract.mdx (Romanian) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ro/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From ca9eb009e8568c011dff2d53b0cd26a48b00ea49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:33 -0400 Subject: [PATCH 1272/1709] New translations get-nft-holders-evm-by-contract.mdx (Romanian) --- .../ro/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ro/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 7b4ccc9c73a7dbcc356e6a4b30b842967ee2d3bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:34 -0400 Subject: [PATCH 1273/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Romanian) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ro/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 4fe39b187dd8c9062b561cf9c7b06d541cfe92d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:35 -0400 Subject: [PATCH 1274/1709] New translations get-nft-ownerships-evm-by-address.mdx (Romanian) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ro/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 180c74f7484f1749f8dc398ba0e1a0da447bcac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:36 -0400 Subject: [PATCH 1275/1709] New translations get-nft-sales-evm.mdx (Romanian) --- website/src/pages/ro/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ro/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ro/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ro/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ro/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 5c0a8e2144469c91728f2670700b034afcaf1be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:38 -0400 Subject: [PATCH 1276/1709] New translations get-transfers-evm.mdx (French) --- website/src/pages/fr/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/fr/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 2566294ee0dbe7f6b73a846c039e295c936dd558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:39 -0400 Subject: [PATCH 1277/1709] New translations get-nft-activities-evm.mdx (French) --- .../pages/fr/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/fr/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 5585facc8aaed164056f117484be1e6faa7092c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:40 -0400 Subject: [PATCH 1278/1709] New translations get-nft-collections-evm-by-contract.mdx (French) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/fr/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From f1586db7dbdd3898ac26b9d1bd6918d0a56dffba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:41 -0400 Subject: [PATCH 1279/1709] New translations get-nft-holders-evm-by-contract.mdx (French) --- .../fr/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/fr/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From c2a83703c91fe07346368dd46dd468ab6e3322bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:42 -0400 Subject: [PATCH 1280/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (French) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/fr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From f90a42ba7fcaedc4a889ded9ced7839cc5787ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:43 -0400 Subject: [PATCH 1281/1709] New translations get-nft-ownerships-evm-by-address.mdx (French) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/fr/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 94d5dc1a747002a25ecfd8dedc1a539282fcf94e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:44 -0400 Subject: [PATCH 1282/1709] New translations get-nft-sales-evm.mdx (French) --- website/src/pages/fr/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/fr/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/fr/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/fr/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/fr/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 6ebc85b679124d16acd78e113015e7bd34e10c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:46 -0400 Subject: [PATCH 1283/1709] New translations get-transfers-evm.mdx (Spanish) --- website/src/pages/es/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/es/token-api/evm/get-transfers-evm.mdx b/website/src/pages/es/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/es/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/es/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 4efc8460dca41f945d065fb46915e80d7ae92daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:47 -0400 Subject: [PATCH 1284/1709] New translations get-nft-activities-evm.mdx (Spanish) --- .../pages/es/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/es/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 566aae567d6d67ab2d8db425c75e867a2726c63d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:48 -0400 Subject: [PATCH 1285/1709] New translations get-nft-collections-evm-by-contract.mdx (Spanish) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/es/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From f609596c62e63e13c35b8405ca16094994bcf089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:49 -0400 Subject: [PATCH 1286/1709] New translations get-nft-holders-evm-by-contract.mdx (Spanish) --- .../es/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/es/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 3c4fb9f3c3db784981e6c28a7e52fd996e3a0221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:50 -0400 Subject: [PATCH 1287/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Spanish) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/es/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 6844c9076cfaa4d1db490668c976618b26bd9db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:52 -0400 Subject: [PATCH 1288/1709] New translations get-nft-ownerships-evm-by-address.mdx (Spanish) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/es/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From d768792850aad0443374cd77be16f14685623bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:53 -0400 Subject: [PATCH 1289/1709] New translations get-nft-sales-evm.mdx (Spanish) --- website/src/pages/es/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/es/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/es/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/es/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/es/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 2c599e6121f98bd28fbd1190da5c4768dfc43a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:54 -0400 Subject: [PATCH 1290/1709] New translations get-transfers-evm.mdx (Arabic) --- website/src/pages/ar/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ar/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 89c8e689dd3e5fbc41e1005db4d723deaeb051fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:55 -0400 Subject: [PATCH 1291/1709] New translations get-nft-activities-evm.mdx (Arabic) --- .../pages/ar/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ar/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 37dba1e8e4eef1b9520cde9d2b1829db909608c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:57 -0400 Subject: [PATCH 1292/1709] New translations get-nft-collections-evm-by-contract.mdx (Arabic) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ar/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From a2d133dcdd7ef21fcb962d6bc83b4b0416b066e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:58 -0400 Subject: [PATCH 1293/1709] New translations get-nft-holders-evm-by-contract.mdx (Arabic) --- .../ar/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ar/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 4678d77e438ed571c5b768579cc1e35562bf240d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:37:59 -0400 Subject: [PATCH 1294/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Arabic) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ar/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 24a9539200cf2b8498fcd8ac5697c940a489cac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:00 -0400 Subject: [PATCH 1295/1709] New translations get-nft-ownerships-evm-by-address.mdx (Arabic) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ar/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From e6d226407f2a6d1ad302db9db6d8aa3d334c9907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:01 -0400 Subject: [PATCH 1296/1709] New translations get-nft-sales-evm.mdx (Arabic) --- website/src/pages/ar/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ar/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ar/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ar/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ar/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From bd44f188377de45747986c1d22e147a3f0a20480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:02 -0400 Subject: [PATCH 1297/1709] New translations get-transfers-evm.mdx (Czech) --- website/src/pages/cs/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx b/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/cs/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From f7a36861bddd2e4268576490b298d8df94bfc8d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:03 -0400 Subject: [PATCH 1298/1709] New translations get-nft-activities-evm.mdx (Czech) --- .../pages/cs/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/cs/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From f3833d6743db15e29987ada83b02f28be05bceec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:04 -0400 Subject: [PATCH 1299/1709] New translations get-nft-collections-evm-by-contract.mdx (Czech) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/cs/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From caaa11faa50934b54ffc046db439db836b1e15ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:06 -0400 Subject: [PATCH 1300/1709] New translations get-nft-holders-evm-by-contract.mdx (Czech) --- .../cs/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/cs/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From f8a104686c48171cd5a39ed32baf300cf77756dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:07 -0400 Subject: [PATCH 1301/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Czech) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/cs/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From a061ccf5f291bde873e45e91f4db371d8d38f1ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:08 -0400 Subject: [PATCH 1302/1709] New translations get-nft-ownerships-evm-by-address.mdx (Czech) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/cs/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 5a3dfeebed847cb5bc85d278a89e30729f0fe05a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:09 -0400 Subject: [PATCH 1303/1709] New translations get-nft-sales-evm.mdx (Czech) --- website/src/pages/cs/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/cs/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/cs/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/cs/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/cs/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 2afdc09b562244c43120a832e05a5b03ea91426f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:11 -0400 Subject: [PATCH 1304/1709] New translations get-transfers-evm.mdx (German) --- website/src/pages/de/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/de/token-api/evm/get-transfers-evm.mdx b/website/src/pages/de/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/de/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/de/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From f481db990f9834cbeaa88509c7584657ab8881fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:12 -0400 Subject: [PATCH 1305/1709] New translations get-nft-activities-evm.mdx (German) --- .../pages/de/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/de/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From e6cf410e66473514260a8e1525dc9d4a87bd65f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:13 -0400 Subject: [PATCH 1306/1709] New translations get-nft-collections-evm-by-contract.mdx (German) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/de/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 8bd858768d6182b79e26d91a951da6210f0944b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:14 -0400 Subject: [PATCH 1307/1709] New translations get-nft-holders-evm-by-contract.mdx (German) --- .../de/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/de/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 91136a8e82f18eb58ad1601d9177c50b09fa6566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:15 -0400 Subject: [PATCH 1308/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (German) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/de/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From eeaa0e4609d8290c0d1035583867d7039ec9839c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:16 -0400 Subject: [PATCH 1309/1709] New translations get-nft-ownerships-evm-by-address.mdx (German) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/de/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From bd8dd2f77fc134f2a807dcd0e84e2493c3982f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:17 -0400 Subject: [PATCH 1310/1709] New translations get-nft-sales-evm.mdx (German) --- website/src/pages/de/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/de/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/de/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/de/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/de/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 8542d99fa9832861c0fcf0639e17cc9e9c09cb92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:19 -0400 Subject: [PATCH 1311/1709] New translations get-transfers-evm.mdx (Italian) --- website/src/pages/it/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/it/token-api/evm/get-transfers-evm.mdx b/website/src/pages/it/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/it/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/it/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From be281a83838c618e55a6eeb0ab861e3e3f772a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:20 -0400 Subject: [PATCH 1312/1709] New translations get-nft-activities-evm.mdx (Italian) --- .../pages/it/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/it/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 276a56ee6df2e47dc170c075303aa3309be04eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:21 -0400 Subject: [PATCH 1313/1709] New translations get-nft-collections-evm-by-contract.mdx (Italian) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/it/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From b02a985a08b5bf228311a3ca1136e86bb805e313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:22 -0400 Subject: [PATCH 1314/1709] New translations get-nft-holders-evm-by-contract.mdx (Italian) --- .../it/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/it/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From f0d3e7ea9bb2ac6e084a87727ac93f7ab3947fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:24 -0400 Subject: [PATCH 1315/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Italian) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/it/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From a7c05767ce756fc66c55d00512fff8ef6231e5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:25 -0400 Subject: [PATCH 1316/1709] New translations get-nft-ownerships-evm-by-address.mdx (Italian) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/it/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From d6babeedd071f9ae2958341e5f76066becf130d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:26 -0400 Subject: [PATCH 1317/1709] New translations get-nft-sales-evm.mdx (Italian) --- website/src/pages/it/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/it/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/it/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/it/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/it/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From e0ce0339545df73fd36655085e158b2713fad1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:27 -0400 Subject: [PATCH 1318/1709] New translations get-transfers-evm.mdx (Japanese) --- website/src/pages/ja/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ja/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 2bf42d95405635d315e86ec81868e525d3cc2748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:29 -0400 Subject: [PATCH 1319/1709] New translations get-nft-activities-evm.mdx (Japanese) --- .../pages/ja/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ja/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 36b225343187a3b7493eeadf09c891d63cbec426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:30 -0400 Subject: [PATCH 1320/1709] New translations get-nft-collections-evm-by-contract.mdx (Japanese) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ja/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 9a41e07fbcf6976f045420315e9c360f244e3279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:31 -0400 Subject: [PATCH 1321/1709] New translations get-nft-holders-evm-by-contract.mdx (Japanese) --- .../ja/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ja/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From d9bc2ad4f0e12e2c86bde051c512988f321a7e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:32 -0400 Subject: [PATCH 1322/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Japanese) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ja/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 6f65ee7c6bd733c4c57aa0bed2a828c35c2f744c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:33 -0400 Subject: [PATCH 1323/1709] New translations get-nft-ownerships-evm-by-address.mdx (Japanese) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ja/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 9b760368a7526e98cdc1cbc80ec347d4bdc191f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:34 -0400 Subject: [PATCH 1324/1709] New translations get-nft-sales-evm.mdx (Japanese) --- website/src/pages/ja/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ja/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ja/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ja/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ja/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From be0c7f3696e341835c2e24b7b58eb6dcf2b8ec79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:36 -0400 Subject: [PATCH 1325/1709] New translations get-transfers-evm.mdx (Korean) --- website/src/pages/ko/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ko/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 43638b2552d8a5af173060d822defc9532246d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:37 -0400 Subject: [PATCH 1326/1709] New translations get-nft-activities-evm.mdx (Korean) --- .../pages/ko/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ko/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 8e1b962b66aa8728b02a0b6433af9113bff8673a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:38 -0400 Subject: [PATCH 1327/1709] New translations get-nft-collections-evm-by-contract.mdx (Korean) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ko/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 516a99b1aa96dcce8244cf6dd63918988d160ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:39 -0400 Subject: [PATCH 1328/1709] New translations get-nft-holders-evm-by-contract.mdx (Korean) --- .../ko/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ko/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 0a8c7f9a94670458e7d9b756090664da01c644ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:40 -0400 Subject: [PATCH 1329/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Korean) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ko/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 096d1e86207a679c551c3272b9d8f9805fc2e0e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:41 -0400 Subject: [PATCH 1330/1709] New translations get-nft-ownerships-evm-by-address.mdx (Korean) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ko/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From b85426eb8778c0113bf01465589fc2d112a15aa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:42 -0400 Subject: [PATCH 1331/1709] New translations get-nft-sales-evm.mdx (Korean) --- website/src/pages/ko/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ko/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ko/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ko/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ko/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From aa8905b11bc514047daa22c71cd73ee26b5dc9a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:44 -0400 Subject: [PATCH 1332/1709] New translations get-transfers-evm.mdx (Dutch) --- website/src/pages/nl/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx b/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/nl/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From d5059d2d78731d3f5af6afaba510f0b36b6bc112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:45 -0400 Subject: [PATCH 1333/1709] New translations get-nft-activities-evm.mdx (Dutch) --- .../pages/nl/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/nl/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From fa5f24ecc07ca733d156b2d38a34970f00df563b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:46 -0400 Subject: [PATCH 1334/1709] New translations get-nft-collections-evm-by-contract.mdx (Dutch) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/nl/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From ddf67a6e0c826939b5ce25a5560f9b798cfede49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:47 -0400 Subject: [PATCH 1335/1709] New translations get-nft-holders-evm-by-contract.mdx (Dutch) --- .../nl/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/nl/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 2ddfe5e82864e57e2db00ec2369fcb09da55b4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:49 -0400 Subject: [PATCH 1336/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Dutch) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/nl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 54d72069f10b343b7d6ecd255445ec676c341cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:50 -0400 Subject: [PATCH 1337/1709] New translations get-nft-ownerships-evm-by-address.mdx (Dutch) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/nl/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 60f87511d44db94710bfe9c66ae691e74cdb9c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:51 -0400 Subject: [PATCH 1338/1709] New translations get-nft-sales-evm.mdx (Dutch) --- website/src/pages/nl/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/nl/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/nl/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/nl/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/nl/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 405a43a1169a87f75e74e55bc57beaa91b693246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:52 -0400 Subject: [PATCH 1339/1709] New translations get-transfers-evm.mdx (Polish) --- website/src/pages/pl/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx b/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/pl/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From f22ab373ac2606b7e0c2951c6f2003f8fe71461d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:53 -0400 Subject: [PATCH 1340/1709] New translations get-nft-activities-evm.mdx (Polish) --- .../pages/pl/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/pl/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 899e5c29dec6c03bd7bf76e1687c4abad176404a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:58 -0400 Subject: [PATCH 1341/1709] New translations get-nft-collections-evm-by-contract.mdx (Polish) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/pl/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 286d66388fefb9452c288d102ad645a60e98a031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:38:59 -0400 Subject: [PATCH 1342/1709] New translations get-nft-holders-evm-by-contract.mdx (Polish) --- .../pl/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/pl/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From bd985e7a290c9ac39f13dbee6a777a3263db207d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:00 -0400 Subject: [PATCH 1343/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Polish) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/pl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 3f06531932dab1c81dfb992e40154d001564a860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:01 -0400 Subject: [PATCH 1344/1709] New translations get-nft-ownerships-evm-by-address.mdx (Polish) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/pl/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 90621c1350c05f7f4177378c2d7a707a8b8ca4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:02 -0400 Subject: [PATCH 1345/1709] New translations get-nft-sales-evm.mdx (Polish) --- website/src/pages/pl/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pl/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/pl/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/pl/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/pl/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 2eb7a0ddf5a4bb21df2b6a1d4fac5584920b038b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:04 -0400 Subject: [PATCH 1346/1709] New translations get-transfers-evm.mdx (Portuguese) --- website/src/pages/pt/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx b/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/pt/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From fcd7ae75e363dcab6719d3b1f0071ebbe408be04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:05 -0400 Subject: [PATCH 1347/1709] New translations get-nft-activities-evm.mdx (Portuguese) --- .../pages/pt/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/pt/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From f7f4e5bd47fcc6deac9aaacb587e0d606667bb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:06 -0400 Subject: [PATCH 1348/1709] New translations get-nft-collections-evm-by-contract.mdx (Portuguese) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/pt/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 530b7b65c370f72440b7b179032e0d1963468f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:08 -0400 Subject: [PATCH 1349/1709] New translations get-nft-holders-evm-by-contract.mdx (Portuguese) --- .../pt/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/pt/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From dfcf4cd62cf1f129968e2a7b70719b984b37d539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:09 -0400 Subject: [PATCH 1350/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Portuguese) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/pt/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 4b64a274f5274693e361587d62e95462557df7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:10 -0400 Subject: [PATCH 1351/1709] New translations get-nft-ownerships-evm-by-address.mdx (Portuguese) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/pt/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 6432de98f106059952e0eb12ed3440a9221c258d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:11 -0400 Subject: [PATCH 1352/1709] New translations get-nft-sales-evm.mdx (Portuguese) --- website/src/pages/pt/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/pt/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/pt/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/pt/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/pt/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From d8687567500c4ccc0c1891417f8fbec44367e0cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:13 -0400 Subject: [PATCH 1353/1709] New translations get-transfers-evm.mdx (Russian) --- website/src/pages/ru/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ru/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 509f7480fdec476bfe523713d6e83f86f033d396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:14 -0400 Subject: [PATCH 1354/1709] New translations get-nft-activities-evm.mdx (Russian) --- .../pages/ru/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ru/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From c4b245ddaacf5963a0371eff89816f39dfee19a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:15 -0400 Subject: [PATCH 1355/1709] New translations get-nft-collections-evm-by-contract.mdx (Russian) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ru/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From c4c1692cfd9c1d5b1e639eed6110672c6ce5bd1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:16 -0400 Subject: [PATCH 1356/1709] New translations get-nft-holders-evm-by-contract.mdx (Russian) --- .../ru/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ru/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 551455859740098dc1d334870d1dfb88ea29d821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:17 -0400 Subject: [PATCH 1357/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Russian) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ru/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 7fb42c95a6805cb6a7f5559f69fa69366dc8c8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:18 -0400 Subject: [PATCH 1358/1709] New translations get-nft-ownerships-evm-by-address.mdx (Russian) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ru/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 1aa06a55b327e284b2bee94dea8050c5f42bb617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:19 -0400 Subject: [PATCH 1359/1709] New translations get-nft-sales-evm.mdx (Russian) --- website/src/pages/ru/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ru/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ru/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ru/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ru/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 957b07544bc521e4cbe009c5e341287d84bf74fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:21 -0400 Subject: [PATCH 1360/1709] New translations get-transfers-evm.mdx (Swedish) --- website/src/pages/sv/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx b/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/sv/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From b5fb47f82f6ef17857f2b610be2856a8ab1f94ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:22 -0400 Subject: [PATCH 1361/1709] New translations get-nft-activities-evm.mdx (Swedish) --- .../pages/sv/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/sv/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 69424f2a0a945ad575b41057b70cb5502f30b4d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:23 -0400 Subject: [PATCH 1362/1709] New translations get-nft-collections-evm-by-contract.mdx (Swedish) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/sv/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 32ffec8887d0adca7d3bdaca09e8e79df756a5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:24 -0400 Subject: [PATCH 1363/1709] New translations get-nft-holders-evm-by-contract.mdx (Swedish) --- .../sv/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/sv/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 2ef3a821210a9dae2082fd2fb3e9719fec747ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:25 -0400 Subject: [PATCH 1364/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Swedish) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/sv/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 3bd9168e71b8eca881d9e042e506dfbb7dddb04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:26 -0400 Subject: [PATCH 1365/1709] New translations get-nft-ownerships-evm-by-address.mdx (Swedish) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/sv/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 28854b8a1b465cc0ebe44c03eb0be21e313cfade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:27 -0400 Subject: [PATCH 1366/1709] New translations get-nft-sales-evm.mdx (Swedish) --- website/src/pages/sv/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/sv/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/sv/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/sv/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/sv/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 09e1039cbc7733a901cc26899e8501fe00f7c74a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:29 -0400 Subject: [PATCH 1367/1709] New translations get-transfers-evm.mdx (Turkish) --- website/src/pages/tr/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/tr/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 263275931b997c96b3e7b4c115503d26ee2ad9db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:30 -0400 Subject: [PATCH 1368/1709] New translations get-nft-activities-evm.mdx (Turkish) --- .../pages/tr/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/tr/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 8d7c3911c2d8aa4c40126234ac8cfb47fa8bb295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:31 -0400 Subject: [PATCH 1369/1709] New translations get-nft-collections-evm-by-contract.mdx (Turkish) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/tr/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 0e0849130b9e9d0407224363bbe1db5598d22681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:33 -0400 Subject: [PATCH 1370/1709] New translations get-nft-holders-evm-by-contract.mdx (Turkish) --- .../tr/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/tr/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 45a75054f7731e95cd70562cc32a41ff960cdc76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:34 -0400 Subject: [PATCH 1371/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Turkish) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/tr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 451f6f41614ea882fe803b9d2b20cc8500ef3d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:35 -0400 Subject: [PATCH 1372/1709] New translations get-nft-ownerships-evm-by-address.mdx (Turkish) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/tr/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From d135bff00a77d13485d036b51f9ac6a11e848a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:36 -0400 Subject: [PATCH 1373/1709] New translations get-nft-sales-evm.mdx (Turkish) --- website/src/pages/tr/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/tr/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/tr/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/tr/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/tr/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From fd5dac43db4fcc637bfbf338cae5ac05b6b322fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:38 -0400 Subject: [PATCH 1374/1709] New translations get-transfers-evm.mdx (Ukrainian) --- website/src/pages/uk/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx b/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/uk/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From be46fd6769555a0f85df43c1cb41ec2c394252f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:39 -0400 Subject: [PATCH 1375/1709] New translations get-nft-activities-evm.mdx (Ukrainian) --- .../pages/uk/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/uk/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From da164738d8c4e508175560becf82a8e5c686a3a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:40 -0400 Subject: [PATCH 1376/1709] New translations get-nft-collections-evm-by-contract.mdx (Ukrainian) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/uk/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From d6ec76cbb0e6e9de5f0eaa7e8f6ca16c4b41e043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:41 -0400 Subject: [PATCH 1377/1709] New translations get-nft-holders-evm-by-contract.mdx (Ukrainian) --- .../uk/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/uk/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From f44b43e22497954d55b8e20470085186d82a1d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:42 -0400 Subject: [PATCH 1378/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Ukrainian) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/uk/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 69c3fceff1ec99590ea160685fb04e380a9fa838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:43 -0400 Subject: [PATCH 1379/1709] New translations get-nft-ownerships-evm-by-address.mdx (Ukrainian) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/uk/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 3c08c13090ac8a1f1c4b1307a94a6cc4aea40dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:44 -0400 Subject: [PATCH 1380/1709] New translations get-nft-sales-evm.mdx (Ukrainian) --- website/src/pages/uk/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/uk/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/uk/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/uk/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/uk/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 2a618783acc1e22f54945bf6632b6f6ae8c1d423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:46 -0400 Subject: [PATCH 1381/1709] New translations get-transfers-evm.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx b/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/zh/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 02370365eeeff36887ee34c04bbf6d6519cd1b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:47 -0400 Subject: [PATCH 1382/1709] New translations get-nft-activities-evm.mdx (Chinese Simplified) --- .../pages/zh/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/zh/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 462f0130cc5518b6137c6c002af0bd6a32fbec26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:48 -0400 Subject: [PATCH 1383/1709] New translations get-nft-collections-evm-by-contract.mdx (Chinese Simplified) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/zh/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From fe47a98cba80f393ae9ae250535ab251dfc573e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:49 -0400 Subject: [PATCH 1384/1709] New translations get-nft-holders-evm-by-contract.mdx (Chinese Simplified) --- .../zh/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/zh/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 92e1ca8da1c505f531dabf1a7e9c34abf1b2be7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:50 -0400 Subject: [PATCH 1385/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Chinese Simplified) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/zh/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From fdb532dec069a22ebcbfb24f5338770419c1c45f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:51 -0400 Subject: [PATCH 1386/1709] New translations get-nft-ownerships-evm-by-address.mdx (Chinese Simplified) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/zh/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 6143410f60f01810e72cd46833ba05e62dfecc42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:53 -0400 Subject: [PATCH 1387/1709] New translations get-nft-sales-evm.mdx (Chinese Simplified) --- website/src/pages/zh/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/zh/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/zh/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/zh/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/zh/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 2818307cdc4d298d336a502fd8253384b20f8bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:54 -0400 Subject: [PATCH 1388/1709] New translations get-transfers-evm.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx b/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/ur/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 54acbd4a787a3325fee0d3d7d29cde91ceed1518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:55 -0400 Subject: [PATCH 1389/1709] New translations get-nft-activities-evm.mdx (Urdu (Pakistan)) --- .../pages/ur/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/ur/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 3111e422ff94266a4eab763ede11882fe6ae8cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:56 -0400 Subject: [PATCH 1390/1709] New translations get-nft-collections-evm-by-contract.mdx (Urdu (Pakistan)) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/ur/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From ea1e23f633448e7155ee82a7958fca1dcea8cca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:58 -0400 Subject: [PATCH 1391/1709] New translations get-nft-holders-evm-by-contract.mdx (Urdu (Pakistan)) --- .../ur/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/ur/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 4dc5e7e917bd9462c5cdef1d807e7e3e5634daa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:39:59 -0400 Subject: [PATCH 1392/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Urdu (Pakistan)) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/ur/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From bb77db16bac93c4e055e87434b7b798f9c2719f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:00 -0400 Subject: [PATCH 1393/1709] New translations get-nft-ownerships-evm-by-address.mdx (Urdu (Pakistan)) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/ur/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 19c05b70ef1b0cbd24e2b831823acde63e1d5340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:01 -0400 Subject: [PATCH 1394/1709] New translations get-nft-sales-evm.mdx (Urdu (Pakistan)) --- website/src/pages/ur/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/ur/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/ur/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/ur/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/ur/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 5a262beac885b2a2b02d8149d10531b51b1efbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:02 -0400 Subject: [PATCH 1395/1709] New translations get-transfers-evm.mdx (Vietnamese) --- website/src/pages/vi/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx b/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/vi/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From b95795e7e6051f6928367e2faa2d13ac923bf005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:04 -0400 Subject: [PATCH 1396/1709] New translations get-nft-activities-evm.mdx (Vietnamese) --- .../pages/vi/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/vi/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From be2cc4bdf922c1c441d97524a4d4d390d6516449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:05 -0400 Subject: [PATCH 1397/1709] New translations get-nft-collections-evm-by-contract.mdx (Vietnamese) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/vi/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 5eab507037c04d029b7f72ade429a48b1fa79d48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:06 -0400 Subject: [PATCH 1398/1709] New translations get-nft-holders-evm-by-contract.mdx (Vietnamese) --- .../vi/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/vi/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 88f40741e7ef717725b98f2c460da688be6df7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:07 -0400 Subject: [PATCH 1399/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Vietnamese) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/vi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 602543174163238f74d8adefadf745e6452d843e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:08 -0400 Subject: [PATCH 1400/1709] New translations get-nft-ownerships-evm-by-address.mdx (Vietnamese) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/vi/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 8d4f534c6dca9d73ed8570ae505cd9f0140b7044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:09 -0400 Subject: [PATCH 1401/1709] New translations get-nft-sales-evm.mdx (Vietnamese) --- website/src/pages/vi/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/vi/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/vi/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/vi/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/vi/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 853bec98446fdc1b834e6bc32775366ccfb9a3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:11 -0400 Subject: [PATCH 1402/1709] New translations get-transfers-evm.mdx (Marathi) --- website/src/pages/mr/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx b/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/mr/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From aee8803cec9ab792159f96ddab327960532f0b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:12 -0400 Subject: [PATCH 1403/1709] New translations get-nft-activities-evm.mdx (Marathi) --- .../pages/mr/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/mr/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 76b0db923c12ff963f9b1935c7b6a3afe545a2be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:13 -0400 Subject: [PATCH 1404/1709] New translations get-nft-collections-evm-by-contract.mdx (Marathi) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/mr/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From ebf3c3ad08fb55328eeeff53775c4666efa87525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:14 -0400 Subject: [PATCH 1405/1709] New translations get-nft-holders-evm-by-contract.mdx (Marathi) --- .../mr/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/mr/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From ccf8b414249ec4fb4698c887a7b4034f2f9f1de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:16 -0400 Subject: [PATCH 1406/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Marathi) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/mr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 1cd92e012825c4910e52c7300c4228c11c7d104d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:17 -0400 Subject: [PATCH 1407/1709] New translations get-nft-ownerships-evm-by-address.mdx (Marathi) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/mr/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From 8906d568912a715ffb75d5bafeb96650df9b6a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:18 -0400 Subject: [PATCH 1408/1709] New translations get-nft-sales-evm.mdx (Marathi) --- website/src/pages/mr/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/mr/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/mr/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/mr/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/mr/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From 9e2e2c48cbe6178a78f6fcb1d056e1188c8021ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:19 -0400 Subject: [PATCH 1409/1709] New translations get-transfers-evm.mdx (Hindi) --- website/src/pages/hi/token-api/evm/get-transfers-evm.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx b/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx index 2e6571308cdd..d8e73c90a03c 100644 --- a/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx +++ b/website/src/pages/hi/token-api/evm/get-transfers-evm.mdx @@ -1,5 +1,5 @@ --- -title: Transfers Events +title: Transfer Events template: type: openApi apiId: tokenApi From 2a0458c504bbaec4a27edf6ce715bfe76de7c5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:21 -0400 Subject: [PATCH 1410/1709] New translations get-nft-activities-evm.mdx (Hindi) --- .../pages/hi/token-api/evm/get-nft-activities-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-activities-evm.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-activities-evm.mdx b/website/src/pages/hi/token-api/evm/get-nft-activities-evm.mdx new file mode 100644 index 000000000000..f76eb35f653a --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-activities-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Activities +template: + type: openApi + apiId: tokenApi + operationId: getNftActivitiesEvm +--- + +Provides NFT Activities (ex: transfers, mints & burns). From 37430da5d4e4fba16d3da99c48376b7f3cc87a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:22 -0400 Subject: [PATCH 1411/1709] New translations get-nft-collections-evm-by-contract.mdx (Hindi) --- .../evm/get-nft-collections-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-collections-evm-by-contract.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-collections-evm-by-contract.mdx b/website/src/pages/hi/token-api/evm/get-nft-collections-evm-by-contract.mdx new file mode 100644 index 000000000000..c8e9bfb64219 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-collections-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Collection +template: + type: openApi + apiId: tokenApi + operationId: getNftCollectionsEvmByContract +--- + +Provides single NFT collection metadata, total supply, owners & total transfers. From 1da43a98481708f24c53c37861b031fd83708b01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:23 -0400 Subject: [PATCH 1412/1709] New translations get-nft-holders-evm-by-contract.mdx (Hindi) --- .../hi/token-api/evm/get-nft-holders-evm-by-contract.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-holders-evm-by-contract.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-holders-evm-by-contract.mdx b/website/src/pages/hi/token-api/evm/get-nft-holders-evm-by-contract.mdx new file mode 100644 index 000000000000..091d01a197f4 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-holders-evm-by-contract.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Holders +template: + type: openApi + apiId: tokenApi + operationId: getNftHoldersEvmByContract +--- + +Provides NFT holders per contract. From 65cefb59ec615e7ebefe3af4cde55184bb249968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:24 -0400 Subject: [PATCH 1413/1709] New translations get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx (Hindi) --- ...ems-evm-contract-by-contract-token_id-by-token_id.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx b/website/src/pages/hi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx new file mode 100644 index 000000000000..cf9ff1c6e1b8 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-items-evm-contract-by-contract-token_id-by-token_id.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Items +template: + type: openApi + apiId: tokenApi + operationId: getNftItemsEvmContractByContractToken_idByToken_id +--- + +Provides single NFT token metadata, ownership & traits. From 61b10dba1bd72ac3d5101c0cdb58309e24669ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:25 -0400 Subject: [PATCH 1414/1709] New translations get-nft-ownerships-evm-by-address.mdx (Hindi) --- .../token-api/evm/get-nft-ownerships-evm-by-address.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-ownerships-evm-by-address.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-ownerships-evm-by-address.mdx b/website/src/pages/hi/token-api/evm/get-nft-ownerships-evm-by-address.mdx new file mode 100644 index 000000000000..4c33526eceb7 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-ownerships-evm-by-address.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Ownerships +template: + type: openApi + apiId: tokenApi + operationId: getNftOwnershipsEvmByAddress +--- + +Provides NFT Ownerships for Account. From b36b4e53578b78910649958115c3ae896dfe9079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 29 May 2025 16:40:26 -0400 Subject: [PATCH 1415/1709] New translations get-nft-sales-evm.mdx (Hindi) --- website/src/pages/hi/token-api/evm/get-nft-sales-evm.mdx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 website/src/pages/hi/token-api/evm/get-nft-sales-evm.mdx diff --git a/website/src/pages/hi/token-api/evm/get-nft-sales-evm.mdx b/website/src/pages/hi/token-api/evm/get-nft-sales-evm.mdx new file mode 100644 index 000000000000..f2d78bea4052 --- /dev/null +++ b/website/src/pages/hi/token-api/evm/get-nft-sales-evm.mdx @@ -0,0 +1,9 @@ +--- +title: NFT Sales +template: + type: openApi + apiId: tokenApi + operationId: getNftSalesEvm +--- + +Provides latest NFT marketplace sales. From a2e59c1b51ffb72b2ab52cbbf9c028d8c4d87ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:30 -0400 Subject: [PATCH 1416/1709] New translations index.json (Romanian) --- website/src/pages/ro/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/index.json b/website/src/pages/ro/index.json index 600cee955a88..b7897a7eb8c6 100644 --- a/website/src/pages/ro/index.json +++ b/website/src/pages/ro/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 5b8fc9704e9f952813711e9662075aef85596a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:31 -0400 Subject: [PATCH 1417/1709] New translations index.json (French) --- website/src/pages/fr/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/index.json b/website/src/pages/fr/index.json index 826423a01378..db6f54d84ed0 100644 --- a/website/src/pages/fr/index.json +++ b/website/src/pages/fr/index.json @@ -2,7 +2,7 @@ "title": "Accueil", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Construisez votre premier subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From dc8206a1a66eef4803d260b3f1b8a170fa61fe97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:32 -0400 Subject: [PATCH 1418/1709] New translations index.json (Spanish) --- website/src/pages/es/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/index.json b/website/src/pages/es/index.json index 994df39a0a99..d9755210a9b8 100644 --- a/website/src/pages/es/index.json +++ b/website/src/pages/es/index.json @@ -2,7 +2,7 @@ "title": "Inicio", "hero": { "title": "Documentación de The Graph", - "description": "Inicia tu proyecto web3 con las herramientas para extraer, transformar y cargar datos de blockchain.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "Cómo funciona The Graph", "cta2": "Crea tu primer subgrafo" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "completa este formulario" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From bc8f537ba23586b0b1a96abe6f21fe3a04ce39c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:33 -0400 Subject: [PATCH 1419/1709] New translations index.json (Arabic) --- website/src/pages/ar/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/index.json b/website/src/pages/ar/index.json index 152082b1e090..d6afe3dae3fb 100644 --- a/website/src/pages/ar/index.json +++ b/website/src/pages/ar/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 1710b0835f3702007d6b39beffd5516e0eef4286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:34 -0400 Subject: [PATCH 1420/1709] New translations index.json (Czech) --- website/src/pages/cs/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/index.json b/website/src/pages/cs/index.json index 16226c8bfe42..e9aadc951c05 100644 --- a/website/src/pages/cs/index.json +++ b/website/src/pages/cs/index.json @@ -2,7 +2,7 @@ "title": "Domov", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 73635fbbbaf43a18d15d775d63d02a7ec0f1d8e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:36 -0400 Subject: [PATCH 1421/1709] New translations index.json (German) --- website/src/pages/de/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/index.json b/website/src/pages/de/index.json index eff1a561943c..fc499ec1e7ce 100644 --- a/website/src/pages/de/index.json +++ b/website/src/pages/de/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Starten Sie Ihr Web3-Projekt mit den Tools zum Extrahieren, Transformieren und Laden von Blockchain-Daten.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "Funktionsweise von The Graph", "cta2": "Erstellen Sie Ihren ersten Subgraphen" }, @@ -58,6 +58,7 @@ "networks": "Netzwerke", "completeThisForm": "füllen Sie dieses Formular aus" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 3a65cebcc854b6fff039386f807d34680a288b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:37 -0400 Subject: [PATCH 1422/1709] New translations index.json (Italian) --- website/src/pages/it/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/index.json b/website/src/pages/it/index.json index 552a73bada6e..c04da33c8230 100644 --- a/website/src/pages/it/index.json +++ b/website/src/pages/it/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From b5181c2cdf0b8e3703d312a671e8aaf7ce5a2ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:38 -0400 Subject: [PATCH 1423/1709] New translations index.json (Japanese) --- website/src/pages/ja/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/index.json b/website/src/pages/ja/index.json index d8e4d61a2361..4c8f74e466c2 100644 --- a/website/src/pages/ja/index.json +++ b/website/src/pages/ja/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graphのドキュメント", - "description": "ブロックチェーンデータを抽出、変換、読み込み可能なツールを用いて、あなたのWeb3プロジェクトを開始しましょう。", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "The Graphの仕組み", "cta2": "最初のサブグラフを作る" }, @@ -58,6 +58,7 @@ "networks": "ネットワーク", "completeThisForm": "フォームを記入する" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From d2fad9a065139ae913a6ffaa9a18ac767b5f07db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:39 -0400 Subject: [PATCH 1424/1709] New translations index.json (Korean) --- website/src/pages/ko/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/index.json b/website/src/pages/ko/index.json index 10c2f88a914d..3a514cbb1908 100644 --- a/website/src/pages/ko/index.json +++ b/website/src/pages/ko/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 7fb4e13600637e31025f40f6d1fb391916b41206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:40 -0400 Subject: [PATCH 1425/1709] New translations index.json (Dutch) --- website/src/pages/nl/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/index.json b/website/src/pages/nl/index.json index 62bb44ece478..1e518a55dc64 100644 --- a/website/src/pages/nl/index.json +++ b/website/src/pages/nl/index.json @@ -2,7 +2,7 @@ "title": "Start", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From d6d2f0e4c5023f618e02cdc19512cd8c5b7306b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:41 -0400 Subject: [PATCH 1426/1709] New translations index.json (Polish) --- website/src/pages/pl/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/index.json b/website/src/pages/pl/index.json index 40d244d7fbe3..ee59d64e9928 100644 --- a/website/src/pages/pl/index.json +++ b/website/src/pages/pl/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From fa61d9e50360a702c449976fa3127e3e3ca3b112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:43 -0400 Subject: [PATCH 1427/1709] New translations index.json (Portuguese) --- website/src/pages/pt/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/index.json b/website/src/pages/pt/index.json index 8f2d651f0459..80f2b8932309 100644 --- a/website/src/pages/pt/index.json +++ b/website/src/pages/pt/index.json @@ -2,7 +2,7 @@ "title": "Início", "hero": { "title": "Documentação do The Graph", - "description": "Comece o seu projeto web3 com as ferramentas para extrair, transformar e carregar os dados da blockchain.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "Como o The Graph funciona", "cta2": "Construa o seu primeiro subgraph" }, @@ -58,6 +58,7 @@ "networks": "redes", "completeThisForm": "complete este formulário" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 806338ddaa56b06f044757fe6bea11085f16a72b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:44 -0400 Subject: [PATCH 1428/1709] New translations index.json (Russian) --- website/src/pages/ru/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/index.json b/website/src/pages/ru/index.json index c22d10e24e6c..cdccbece7197 100644 --- a/website/src/pages/ru/index.json +++ b/website/src/pages/ru/index.json @@ -2,7 +2,7 @@ "title": "Главная страница", "hero": { "title": "Документация The Graph", - "description": "Запустите свой проект web3 с помощью инструментов для извлечения, преобразования и загрузки данных блокчейна.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "Как работает The Graph", "cta2": "Создайте свой первый субграф" }, @@ -58,6 +58,7 @@ "networks": "сети", "completeThisForm": "заполнить эту форму" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 9305abe51fae980b96afff2764f6fdd66396b9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:45 -0400 Subject: [PATCH 1429/1709] New translations index.json (Swedish) --- website/src/pages/sv/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/index.json b/website/src/pages/sv/index.json index 2af3effa2fd4..445d37896a83 100644 --- a/website/src/pages/sv/index.json +++ b/website/src/pages/sv/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 1cd97b8c0e5cf5a98534d1bde15aa2b2a0ad2221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:46 -0400 Subject: [PATCH 1430/1709] New translations index.json (Turkish) --- website/src/pages/tr/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/index.json b/website/src/pages/tr/index.json index b34814be0dd0..97c03e46b9df 100644 --- a/website/src/pages/tr/index.json +++ b/website/src/pages/tr/index.json @@ -2,7 +2,7 @@ "title": "Ana sayfa", "hero": { "title": "The Graph Dokümantasyonu", - "description": "Blokzinciri verilerini çıkarma, dönüştürme ve yükleme araçlarıyla web3 projenize hızlı bir başlangıç yapın.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "The Graph nasıl çalışır?", "cta2": "İlk subgraph'inizi oluşturun" }, @@ -58,6 +58,7 @@ "networks": "ağlar", "completeThisForm": "bu formu doldurun" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 4ee2e2aa649df0eab71c939d5fb9a7977ae5920f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:47 -0400 Subject: [PATCH 1431/1709] New translations index.json (Ukrainian) --- website/src/pages/uk/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/index.json b/website/src/pages/uk/index.json index b48d269b17c5..48ec7dc3cfec 100644 --- a/website/src/pages/uk/index.json +++ b/website/src/pages/uk/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 947195ca9149f28712912dec0f53db3fb11faf01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:49 -0400 Subject: [PATCH 1432/1709] New translations index.json (Chinese Simplified) --- website/src/pages/zh/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/index.json b/website/src/pages/zh/index.json index ad9889b215ff..d753c4d3c8f9 100644 --- a/website/src/pages/zh/index.json +++ b/website/src/pages/zh/index.json @@ -2,7 +2,7 @@ "title": "主页", "hero": { "title": "The Graph 文档", - "description": "使用提取、转换和加载区块链数据的工具启动您的 web3 项目。", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "The Graph 是如何工作的", "cta2": "创建你的第一个子图" }, @@ -58,6 +58,7 @@ "networks": "网络", "completeThisForm": "完成此表单" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "未发现网络", "description": "没有符合您搜索的 \"{0} \" 的网络", From 4db6475af955c92c9748c3a6ec7fc2f56a73e45b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:50 -0400 Subject: [PATCH 1433/1709] New translations index.json (Urdu (Pakistan)) --- website/src/pages/ur/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/index.json b/website/src/pages/ur/index.json index 329b94132247..b679ac92e350 100644 --- a/website/src/pages/ur/index.json +++ b/website/src/pages/ur/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From c989735971d0cb7674bddf60308e8660471ffa13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:51 -0400 Subject: [PATCH 1434/1709] New translations index.json (Vietnamese) --- website/src/pages/vi/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/index.json b/website/src/pages/vi/index.json index 4f342d7860fb..bc04d01aaaa5 100644 --- a/website/src/pages/vi/index.json +++ b/website/src/pages/vi/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From 15a1e7445746fbee240c34a845e603ae02624561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:52 -0400 Subject: [PATCH 1435/1709] New translations index.json (Marathi) --- website/src/pages/mr/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/index.json b/website/src/pages/mr/index.json index 01a6ae0d73af..81ecc035612f 100644 --- a/website/src/pages/mr/index.json +++ b/website/src/pages/mr/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph Docs", - "description": "Kick-start your web3 project with the tools to extract, transform, and load blockchain data.", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "How The Graph works", "cta2": "Build your first subgraph" }, @@ -58,6 +58,7 @@ "networks": "networks", "completeThisForm": "complete this form" }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From f7edb0b287f1742710f579837fbf8c2c13f43227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 07:17:54 -0400 Subject: [PATCH 1436/1709] New translations index.json (Hindi) --- website/src/pages/hi/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/index.json b/website/src/pages/hi/index.json index 2857505765de..312fe6dfb6d3 100644 --- a/website/src/pages/hi/index.json +++ b/website/src/pages/hi/index.json @@ -2,7 +2,7 @@ "title": "Home", "hero": { "title": "The Graph डॉक्स", - "description": "अपनी वेब3 परियोजना को शुरू करें उन उपकरणों के साथ जो ब्लॉकचेन डेटा को निकालने, बदलने और लोड करने में सहायता करते हैं।", + "description": "The Graph is a blockchain data solution that powers applications, analytics, and AI on 90+ chains. The Graph's core products include the Token API for web3 apps, Subgraphs for indexing smart contracts, and Substreams for real-time and historical data streaming.", "cta1": "The Graph कैसे काम करता है", "cta2": "अपना पहला Subgraph बनाएं" }, @@ -58,6 +58,7 @@ "networks": "नेटवर्क्स ", "completeThisForm": "इस फ़ॉर्म को पूरा करें " }, + "seeAllNetworks": "See all {0} networks", "emptySearch": { "title": "No networks found", "description": "No networks match your search for \"{0}\"", From b4097fd855ec99fe7fbc6f8402ed98b35007fe28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:22 -0400 Subject: [PATCH 1437/1709] New translations overview.mdx (Romanian) --- website/src/pages/ro/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ro/indexing/overview.mdx b/website/src/pages/ro/indexing/overview.mdx index 0b9b31f5d22d..53d970354a1d 100644 --- a/website/src/pages/ro/indexing/overview.mdx +++ b/website/src/pages/ro/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From ddf3423bd472299a10b314a87ca24586307a97fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:23 -0400 Subject: [PATCH 1438/1709] New translations graph-node.mdx (Romanian) --- website/src/pages/ro/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ro/indexing/tooling/graph-node.mdx b/website/src/pages/ro/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/ro/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ro/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From 1dda44b7f9c0277363efc3af39cbb9c97710256f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:25 -0400 Subject: [PATCH 1439/1709] New translations overview.mdx (French) --- website/src/pages/fr/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/fr/indexing/overview.mdx b/website/src/pages/fr/indexing/overview.mdx index be87dbd79d9a..eff530290a16 100644 --- a/website/src/pages/fr/indexing/overview.mdx +++ b/website/src/pages/fr/indexing/overview.mdx @@ -708,42 +708,6 @@ Notez que les types d'action pris en charge pour la gestion de l'allocation ont Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -Le langage Agora fournit un format flexible pour déclarer des modèles de coûts pour les requêtes. Un modèle de prix Agora est une séquence d'instructions qui s'exécutent dans l'ordre pour chaque requête de niveau supérieur dans une requête GraphQL. Pour chaque requête de niveau supérieur, la première instruction qui lui correspond détermine le prix de cette requête. - -Une déclaration est composée d'un prédicat, qui est utilisé pour faire correspondre les requêtes GraphQL, et d'une expression de coût qui, lorsqu'elle est évaluée, produit un coût en GRT décimal. Les valeurs de l'argument nommé d'une requête peuvent être capturées dans le prédicat et utilisées dans l'expression. Les globaux peuvent également être définis et remplacés par des espaces réservés dans une expression. - -Exemple de modèle de coût : - -``` -# Cette instruction capture la valeur du saut, -# utilise une expression booléenne dans le prédicat pour faire correspondre les requêtes spécifiques qui utilisent `skip` -# et une expression de coût pour calculer le coût en fonction de la valeur `skip` et de la valeur globale SYSTEM_LOAD -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# Cette valeur par défaut correspondra à n'importe quelle expression GraphQL. -# Il utilise un Global substitué dans l'expression pour calculer le coût. -default => 0.1 * $SYSTEM_LOAD; -``` - -Exemple de calcul des coûts d'une requête à l'aide du modèle ci-dessus : - -| Requête | Prix | -| ------------------------------------------------------------------------------ | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Application du modèle de coût - -Les modèles de coûts sont appliqués via l'Indexer CLI, qui les transmet à l'API de gestion de l'Indexer agent pour qu'ils soient stockés dans la base de données. L'Indexer Service les récupère ensuite et fournit les modèles de coûts aux passerelles chaque fois qu'elles le demandent. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interaction avec le réseau ### Staker dans le protocol From 0f7b3183127eb8b3a6f6d19801b420646f9686cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:26 -0400 Subject: [PATCH 1440/1709] New translations graph-node.mdx (French) --- website/src/pages/fr/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/fr/indexing/tooling/graph-node.mdx b/website/src/pages/fr/indexing/tooling/graph-node.mdx index a425ac25b17a..962076165183 100644 --- a/website/src/pages/fr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/fr/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Lorsqu'il est en cours d'exécution, Graph Node expose les ports suivants : | 8030 | API du statut de l'indexation des subgraphs | /graphql | \--index-node-port | - | | 8040 | Métriques Prometheus | /metrics | \--metrics-port | - | -> **Important** : Soyez prudent lorsque vous exposez des ports publiquement - les **ports d'administration** doivent être verrouillés. Ceci inclut l'endpoint JSON-RPC de Graph Node. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Configuration avancée du nœud graph From 8b5b07b8d65a38d5d57487efeab84e67856f23d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:27 -0400 Subject: [PATCH 1441/1709] New translations overview.mdx (Spanish) --- website/src/pages/es/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/es/indexing/overview.mdx b/website/src/pages/es/indexing/overview.mdx index 582962c94c0d..dc7a443a4f06 100644 --- a/website/src/pages/es/indexing/overview.mdx +++ b/website/src/pages/es/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From bcb358b9888224035d1bacc75c581f05478b25ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:29 -0400 Subject: [PATCH 1442/1709] New translations graph-node.mdx (Spanish) --- website/src/pages/es/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/es/indexing/tooling/graph-node.mdx b/website/src/pages/es/indexing/tooling/graph-node.mdx index f0dbc4756468..cb2c02025587 100644 --- a/website/src/pages/es/indexing/tooling/graph-node.mdx +++ b/website/src/pages/es/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Cuando está funcionando, Graph Node muestra los siguientes puertos: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Configuración avanzada de Graph Node From b9f84f894e613124fe0eba43842b69f4b612cf19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:30 -0400 Subject: [PATCH 1443/1709] New translations overview.mdx (Arabic) --- website/src/pages/ar/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ar/indexing/overview.mdx b/website/src/pages/ar/indexing/overview.mdx index f543bca55f32..807c51cd39f0 100644 --- a/website/src/pages/ar/indexing/overview.mdx +++ b/website/src/pages/ar/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From b58067ffe043e89dd585eb89bf4fac017eab362c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:32 -0400 Subject: [PATCH 1444/1709] New translations graph-node.mdx (Arabic) --- website/src/pages/ar/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ar/indexing/tooling/graph-node.mdx b/website/src/pages/ar/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/ar/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ar/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From 96c4cde225c4832817c6aad94be5e86ba6163739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:33 -0400 Subject: [PATCH 1445/1709] New translations overview.mdx (Czech) --- website/src/pages/cs/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/cs/indexing/overview.mdx b/website/src/pages/cs/indexing/overview.mdx index 47b88923efa8..a5228d9b5881 100644 --- a/website/src/pages/cs/indexing/overview.mdx +++ b/website/src/pages/cs/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From ea2bc73623d9516dfda0ba3dbc1581d79482e691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:34 -0400 Subject: [PATCH 1446/1709] New translations graph-node.mdx (Czech) --- website/src/pages/cs/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/cs/indexing/tooling/graph-node.mdx b/website/src/pages/cs/indexing/tooling/graph-node.mdx index a06e72d7103d..c1ff150aaa6a 100644 --- a/website/src/pages/cs/indexing/tooling/graph-node.mdx +++ b/website/src/pages/cs/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Když je Graf Uzel spuštěn, zpřístupňuje následující ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Pokročilá konfigurace uzlu Graf From 63f6f1a48f470f1fc4edb3c19375aeb955322f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:36 -0400 Subject: [PATCH 1447/1709] New translations overview.mdx (German) --- website/src/pages/de/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/de/indexing/overview.mdx b/website/src/pages/de/indexing/overview.mdx index f6128f144663..bfa9dd9f8703 100644 --- a/website/src/pages/de/indexing/overview.mdx +++ b/website/src/pages/de/indexing/overview.mdx @@ -708,42 +708,6 @@ Beachten Sie, dass unterstützte Aktionstypen für das Allokationsmanagement unt Kostenmodelle ermöglichen eine dynamische Preisgestaltung für Abfragen auf der Grundlage von Markt- und Abfrageattributen. Der Indexierer-Service teilt ein Kostenmodell mit den Gateways für jeden Subgraphen, für den sie beabsichtigen, auf Anfragen zu antworten. Die Gateways wiederum nutzen das Kostenmodell, um Entscheidungen über die Auswahl der Indexer pro Anfrage zu treffen und die Bezahlung mit den ausgewählten Indexern auszuhandeln. -#### Agora - -Die Agora-Sprache bietet ein flexibles Format zur Deklaration von Kostenmodellen für Abfragen. Ein Agora-Preismodell ist eine Folge von Anweisungen, die für jede Top-Level-Abfrage in einer GraphQL-Abfrage nacheinander ausgeführt werden. Für jede Top-Level-Abfrage bestimmt die erste Anweisung, die ihr entspricht, den Preis für diese Abfrage. - -Eine Anweisung besteht aus einem Prädikat, das zum Abgleich von GraphQL-Abfragen verwendet wird, und einem Kostenausdruck, der bei der Auswertung die Kosten in dezimalen GRT ausgibt. Werte in der benannten Argumentposition einer Abfrage können im Prädikat erfasst und im Ausdruck verwendet werden. Globale Werte können auch gesetzt und durch Platzhalter in einem Ausdruck ersetzt werden. - -Beispielkostenmodell: - -``` -# Diese Anweisung erfasst den Wert „skip“, -# verwendet einen booleschen Ausdruck im Prädikat, um mit bestimmten Abfragen übereinzustimmen, die `skip` verwenden -# und einen Kostenausdruck, um die Kosten auf der Grundlage des `skip`-Wertes und des globalen SYSTEM_LOAD-Wertes zu berechnen -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# Diese Vorgabe passt auf jeden GraphQL-Ausdruck. -# Sie verwendet ein Global, das in den Ausdruck eingesetzt wird, um die Kosten zu berechnen -default => 0.1 * $SYSTEM_LOAD; -``` - -Beispiel für eine Abfragekostenberechnung unter Verwendung des obigen Modells: - -| Abfrage | Preis | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Anwendung des Kostenmodells - -Kostenmodelle werden über die Indexierer-CLI angewendet, die sie zum Speichern in der Datenbank an die Indexierer-Verwaltungs-API des Indexierer-Agenten übergibt. Der Indexierer-Service holt sie dann ab und stellt Gateways die Kostenmodelle zur Verfügung, jedesmal wenn sie danach fragen. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interaktion mit dem Netzwerk ### Einsatz im Protokoll From 5607e60e93c9ee928544fe0d7c908394ccfc1502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:37 -0400 Subject: [PATCH 1448/1709] New translations graph-node.mdx (German) --- website/src/pages/de/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/de/indexing/tooling/graph-node.mdx b/website/src/pages/de/indexing/tooling/graph-node.mdx index a4857509324d..4993250611d7 100644 --- a/website/src/pages/de/indexing/tooling/graph-node.mdx +++ b/website/src/pages/de/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Wenn es ausgeführt wird, stellt Graph Node die folgenden Ports zur Verfügung: | 8030 | Status der Indizierung von Subgraphen API | /graphql | \--index-node-port | - | | 8040 | Prometheus-Metriken | /metrics | \--metrics-port | - | -> **Wichtig**: Seien Sie vorsichtig damit, Ports öffentlich zugänglich zu machen - **Verwaltungsports** sollten unter Verschluss gehalten werden. Dies gilt auch für den Graph Node JSON-RPC Endpunkt. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Erweiterte Graph-Knoten-Konfiguration From 83334bc53e7190f60d3e0543b1d2fcffe4423df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:38 -0400 Subject: [PATCH 1449/1709] New translations overview.mdx (Italian) --- website/src/pages/it/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/it/indexing/overview.mdx b/website/src/pages/it/indexing/overview.mdx index 4fd39637b806..c6ab6bcd1e36 100644 --- a/website/src/pages/it/indexing/overview.mdx +++ b/website/src/pages/it/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 3d34dad74039d12168fc7d17c8c8e1a0c953666d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:40 -0400 Subject: [PATCH 1450/1709] New translations graph-node.mdx (Italian) --- website/src/pages/it/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/it/indexing/tooling/graph-node.mdx b/website/src/pages/it/indexing/tooling/graph-node.mdx index 7c50775bfe03..549140380490 100644 --- a/website/src/pages/it/indexing/tooling/graph-node.mdx +++ b/website/src/pages/it/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Quando è in funzione, Graph Node espone le seguenti porte: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Configurazione avanzata del Graph Node From b6f1f441336643f04c273a87081ffc6b1ecdd275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:41 -0400 Subject: [PATCH 1451/1709] New translations overview.mdx (Japanese) --- website/src/pages/ja/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ja/indexing/overview.mdx b/website/src/pages/ja/indexing/overview.mdx index df7af3cc4dfd..123bbd010a89 100644 --- a/website/src/pages/ja/indexing/overview.mdx +++ b/website/src/pages/ja/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 132e7b53ab097b30ee77ff7f7401e774ab962114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:43 -0400 Subject: [PATCH 1452/1709] New translations graph-node.mdx (Japanese) --- website/src/pages/ja/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ja/indexing/tooling/graph-node.mdx b/website/src/pages/ja/indexing/tooling/graph-node.mdx index 88b32b795699..68641d3a9958 100644 --- a/website/src/pages/ja/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ja/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ A complete Kubernetes example configuration can be found in the [indexer reposit | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## グラフノードの高度な設定 From 253305f3269472606d8c46aa0e0cab45c8fa510a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:44 -0400 Subject: [PATCH 1453/1709] New translations overview.mdx (Korean) --- website/src/pages/ko/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ko/indexing/overview.mdx b/website/src/pages/ko/indexing/overview.mdx index 0b9b31f5d22d..53d970354a1d 100644 --- a/website/src/pages/ko/indexing/overview.mdx +++ b/website/src/pages/ko/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From f2a87c7a7fcb6d83d906dd19d68c118ac93841b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:45 -0400 Subject: [PATCH 1454/1709] New translations graph-node.mdx (Korean) --- website/src/pages/ko/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ko/indexing/tooling/graph-node.mdx b/website/src/pages/ko/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/ko/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ko/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From a5cff9b75e73535fa4c2752ceade0750b690e094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:47 -0400 Subject: [PATCH 1455/1709] New translations overview.mdx (Dutch) --- website/src/pages/nl/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/nl/indexing/overview.mdx b/website/src/pages/nl/indexing/overview.mdx index 891a4b0dba3d..2093bd27ec24 100644 --- a/website/src/pages/nl/indexing/overview.mdx +++ b/website/src/pages/nl/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 207eaf358ba640f17c033783aaa4810df75e913e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:48 -0400 Subject: [PATCH 1456/1709] New translations graph-node.mdx (Dutch) --- website/src/pages/nl/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/nl/indexing/tooling/graph-node.mdx b/website/src/pages/nl/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/nl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/nl/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From c76b284b8a864a6805dd2e6f0b374f48337e759a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:50 -0400 Subject: [PATCH 1457/1709] New translations overview.mdx (Polish) --- website/src/pages/pl/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/pl/indexing/overview.mdx b/website/src/pages/pl/indexing/overview.mdx index 0b9b31f5d22d..53d970354a1d 100644 --- a/website/src/pages/pl/indexing/overview.mdx +++ b/website/src/pages/pl/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From b375d2198f7a26aed018a2cfa5a3ffef1ab87fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:51 -0400 Subject: [PATCH 1458/1709] New translations graph-node.mdx (Polish) --- website/src/pages/pl/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pl/indexing/tooling/graph-node.mdx b/website/src/pages/pl/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/pl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pl/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From a2ce6fc9ac6e3cc2a502b50a77b8eb86c1b16c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:52 -0400 Subject: [PATCH 1459/1709] New translations overview.mdx (Portuguese) --- website/src/pages/pt/indexing/overview.mdx | 37 ---------------------- 1 file changed, 37 deletions(-) diff --git a/website/src/pages/pt/indexing/overview.mdx b/website/src/pages/pt/indexing/overview.mdx index a97272ae9669..94cb2398c0db 100644 --- a/website/src/pages/pt/indexing/overview.mdx +++ b/website/src/pages/pt/indexing/overview.mdx @@ -708,43 +708,6 @@ Observe que os tipos apoiados de ações para gestão de alocação têm requisi Modelos de custo servem preços dinâmicos para queries, com base em atributos de mercado e query. O Serviço de Indexador compartilha um modelo de custo com os gateways para cada subgraph, aos quais ele pretende responder a consultas. Os gateways, por sua vez, usam o modelo de custo para decidir seleções de Indexador por query e para negociar pagamentos com Indexadores escolhidos. -#### Agora - -A linguagem Agora providencia um formato flexível para a declaração de modelos de custo para queries. Um modelo de preço do Agora é uma sequência de declarações, executadas em ordem, para cada query de alto-nível em um query no GraphQL. Para cada query de nível máximo, a primeira declaração correspondente determina o preço para o tal query. - -Uma declaração consiste de um predicado, que é usado para corresponder a buscas GraphQL; e uma expressão de custo que, quando avaliada, mostra um custo em GRT decimal. Valores na posição de argumento nomeada em um query podem ser capturados no predicado e usados na expressão. Valores globais também podem ser configurados e substituídos por valores temporários em uma expressão. - -Exemplo de modelo de custo: - -``` -# Esta declaração captura o valor de pulo, -# usa uma expressão boolean no predicado para corresponder a consultas específicas que usam 'skip' -# e uma expressão de custo para calcular o custo baseado no valor 'skip' e no global SYSTEM_LOAD -SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# Este padrão corresponderá a qualquer expressão GraphQL. -# Ele usa um Global substituído na expressão para calcular o custo -default => 0.1 * $SYSTEM_LOAD; -``` - -Exemplo de custo de query usando o modelo acima: - -| Query | Preço | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Aplicação do modelo de custo - -Os modelos de custo são aplicados através do Indexer CLI, que os repassa à API de Gestão do agente de Indexador para armazenamento no banco de dados. O Serviço de Indexador depois irá localizar e servir os modelos de custo para gateways, sempre que eles forem requisitados. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interações com a rede ### Stake no protocolo From 33bde456d1db1e05dafe7669095d51ef8c602100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:54 -0400 Subject: [PATCH 1460/1709] New translations graph-node.mdx (Portuguese) --- website/src/pages/pt/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/pt/indexing/tooling/graph-node.mdx b/website/src/pages/pt/indexing/tooling/graph-node.mdx index f521db588759..8429c7d50067 100644 --- a/website/src/pages/pt/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pt/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Durante a execução, o Graph Node expõe as seguintes portas: | 8030 | API de estado de indexação do subgraph | /graphql | \--index-node-port | - | | 8040 | Métricas Prometheus | /metrics | \--metrics-port | - | -> **Importante**: Cuidado ao expor portas publicamente — **portas de administração** devem ser trancadas a sete chaves. Isto inclui o endpoint JSON-RPC do Graph Node. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Configurações avançadas do Graph Node From c4d8a7b2deec3a6943b485f4c307f44721850e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:55 -0400 Subject: [PATCH 1461/1709] New translations overview.mdx (Russian) --- website/src/pages/ru/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ru/indexing/overview.mdx b/website/src/pages/ru/indexing/overview.mdx index f66166d8c7af..5bd31405ab1b 100644 --- a/website/src/pages/ru/indexing/overview.mdx +++ b/website/src/pages/ru/indexing/overview.mdx @@ -708,42 +708,6 @@ graph indexer actions execute approve Модели стоимости обеспечивают динамическое ценообразование для запросов на основе рыночных условий и атрибутов запроса. Сервис Индексатора делится моделью стоимости с шлюзами для каждого субграфа, на который они планируют отвечать. Шлюзы, в свою очередь, используют модель стоимости для принятия решений о выборе Индексатора для каждого запроса и для ведения переговоров о плате с выбранными Индексаторами. -#### Agora - -Язык Agora предоставляет гибкий формат для объявления моделей стоимости запросов. Модель стоимости Agora — это последовательность операторов, которые выполняются по порядку для каждого верхнего уровня запроса в GraphQL запросе. Для каждого верхнего уровня запроса первое условие, которое совпадает с ним, определяет цену для этого запроса. - -Заявление состоит из предиката, который используется для сопоставления запросов GraphQL, и выражения стоимости, которое при вычислении выводит стоимость в десятичных долях GRT. Значения, находящиеся в позиции именованных аргументов запроса, могут быть захвачены в предикате и использованы в выражении. Глобальные переменные также могут быть установлены и подставлены в качестве заполнителей в выражении. - -Пример модели стоимости: - -``` -# Это выражение захватывает значение skip, -# использует логическое выражение в предикате для соответствия конкретным запросам, использующим `skip`, -# и выражение для вычисления стоимости на основе значения `skip` и глобальной переменной SYSTEM_LOAD -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# Этот по умолчанию шаблон будет соответствовать любому выражению GraphQL. -# Он использует глобальную переменную, подставленную в выражение для вычисления стоимости -default => 0.1 * $SYSTEM_LOAD; -``` - -Пример вычисления запросов с использованием вышеуказанной модели: - -| Запрос | Цена | -| ----------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Применение модели стоимости - -Модели стоимости применяются через CLI Индексатора, который передает их в API управления Индексатором для хранения в базе данных. После этого Индексатор-сервис будет получать эти модели стоимости и передавать их шлюзам, когда те запрашивают их. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Взаимодействие с сетью ### Стейкинг в протоколе From 463b695104dd476f0558bca86de786767a686024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:56 -0400 Subject: [PATCH 1462/1709] New translations graph-node.mdx (Russian) --- website/src/pages/ru/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ru/indexing/tooling/graph-node.mdx b/website/src/pages/ru/indexing/tooling/graph-node.mdx index 31c4e4aca1cd..dd5d44fc2851 100644 --- a/website/src/pages/ru/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ru/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ cargo run -p graph-node --release -- \ | 8030 | API статуса индексирования Субграфа | /graphql | \--index-node-port | - | | 8040 | Метрики Prometheus | /metrics | \--metrics-port | - | -> **Важно**. Будьте осторожны, открывая порты для общего доступа — **порты администрирования** должны оставаться закрытыми. Это касается конечных точек Graph Node JSON-RPC. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Расширенная настройка Graph Node From fb312efb1ce208042e1326b23d2a31b55480cba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:58 -0400 Subject: [PATCH 1463/1709] New translations overview.mdx (Swedish) --- website/src/pages/sv/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/sv/indexing/overview.mdx b/website/src/pages/sv/indexing/overview.mdx index 3cbd4c66ccf5..1915b6b68fef 100644 --- a/website/src/pages/sv/indexing/overview.mdx +++ b/website/src/pages/sv/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From db950e6b71ea7a00487c2d3f0cd406f79d38755e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:05:59 -0400 Subject: [PATCH 1464/1709] New translations graph-node.mdx (Swedish) --- website/src/pages/sv/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/sv/indexing/tooling/graph-node.mdx b/website/src/pages/sv/indexing/tooling/graph-node.mdx index 10f8e8793b0f..5102ea3db588 100644 --- a/website/src/pages/sv/indexing/tooling/graph-node.mdx +++ b/website/src/pages/sv/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ När Graph Node är igång exponerar den följande portar: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Avancerad konfiguration av Graf Node From f082426904faac6d4782091d35b3d4af53cc97ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:00 -0400 Subject: [PATCH 1465/1709] New translations overview.mdx (Turkish) --- website/src/pages/tr/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/tr/indexing/overview.mdx b/website/src/pages/tr/indexing/overview.mdx index fdaed8832e1b..6572a4bb9f42 100644 --- a/website/src/pages/tr/indexing/overview.mdx +++ b/website/src/pages/tr/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 8145b51f7074678f3ccf7cdcb67bb8d80235de53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:02 -0400 Subject: [PATCH 1466/1709] New translations graph-node.mdx (Turkish) --- website/src/pages/tr/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/tr/indexing/tooling/graph-node.mdx b/website/src/pages/tr/indexing/tooling/graph-node.mdx index dc97a872ff32..c25e0c630ab0 100644 --- a/website/src/pages/tr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/tr/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Graph Düğümü çalışırken aşağıdaki portları açar: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Önemli**: Bağlantı noktalarını herkese açık olarak dışarıya sunarken dikkatli olun. **Yönetim portları** kilitli tutulmalıdır. Bu gereklilik Graph Düğümü JSON-RPC uç noktası için de geçerlidir. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Gelişmiş Graph Düğüm yapılandırması From 6ae890289e18fe5be9fbfab0d9abfea68aea6697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:03 -0400 Subject: [PATCH 1467/1709] New translations overview.mdx (Ukrainian) --- website/src/pages/uk/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/uk/indexing/overview.mdx b/website/src/pages/uk/indexing/overview.mdx index 2914c64219ea..1c4516a90031 100644 --- a/website/src/pages/uk/indexing/overview.mdx +++ b/website/src/pages/uk/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 9d8592f2393833ab1a7ba9738e4f94edf9cc1e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:04 -0400 Subject: [PATCH 1468/1709] New translations graph-node.mdx (Ukrainian) --- website/src/pages/uk/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/uk/indexing/tooling/graph-node.mdx b/website/src/pages/uk/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/uk/indexing/tooling/graph-node.mdx +++ b/website/src/pages/uk/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From 2648369f8ab61e8980df65f26e08d627229bdd81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:06 -0400 Subject: [PATCH 1469/1709] New translations overview.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/zh/indexing/overview.mdx b/website/src/pages/zh/indexing/overview.mdx index 7f85df5b083a..1e8b34d131b0 100644 --- a/website/src/pages/zh/indexing/overview.mdx +++ b/website/src/pages/zh/indexing/overview.mdx @@ -708,42 +708,6 @@ graph indexer actions execute approve 成本模型根据市场和查询属性为查询提供动态定价。索引人服务与网关共享一个成本模型,用于它们打算响应查询的每个子图。反过来,网关使用成本模型对每个查询进行索引人选择决策,并与选定的索引人协商付款。 -#### Agora - -Agora 语言提供了一种灵活的格式来声明查询的成本模型。 Agora 价格模型是一系列的语句,它们按照 GraphQL 查询中每个顶层查询的顺序执行。 对于每个顶层查询,第一个与其匹配的语句决定了该查询的价格。 - -语句由一个用于匹配 GraphQL 查询的谓词和一个成本表达式组成,该表达式在评估时输出一个以十进制 GRT 表示的成本。 查询的命名参数位置中的值可以在谓词中捕获并在表达式中使用。 也可以在表达式中设置全局,并代替占位符。 - -成本模型示例: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -使用上述模型的查询成本计算示例: - -| 查询 | 价格 | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### 应用成本模式 - -成本模型是通过索引人 CLI 应用的,CLI 将它们传递给索引人代理的索引人管理 API,以便存储在数据库中。 然后,索引人服务将接收这些模型,并在网关要求时将成本模型提供给它们。 - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## 与网络的交互 ### 在协议中进行质押 From 32685708d1adf9376c15dbdc45a442c2cc238200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:07 -0400 Subject: [PATCH 1470/1709] New translations graph-node.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/zh/indexing/tooling/graph-node.mdx b/website/src/pages/zh/indexing/tooling/graph-node.mdx index 28b672699dc8..56b82f910b2d 100644 --- a/website/src/pages/zh/indexing/tooling/graph-node.mdx +++ b/website/src/pages/zh/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ cargo run -p graph-node --release -- \ | 8030 | 子图索引状态 API | /graphql | \--index-node-port | - | | 8040 | Prometheus 指标 | /metrics | \--metrics-port | - | -> **重要**: 公开暴露端口时要小心 - **管理端口** 应保持锁定。 这包括下面详述的 Graph节点 JSON-RPC。 +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## 高级 Graph 节点配置 From 3034c7dc12279d800f881efa15179aaf2bb4ec2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:08 -0400 Subject: [PATCH 1471/1709] New translations overview.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/ur/indexing/overview.mdx b/website/src/pages/ur/indexing/overview.mdx index e2a11f30cfbf..54bff09db5c4 100644 --- a/website/src/pages/ur/indexing/overview.mdx +++ b/website/src/pages/ur/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From cb5a2983469ac955c552e93427f451e617cf9e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:09 -0400 Subject: [PATCH 1472/1709] New translations graph-node.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/ur/indexing/tooling/graph-node.mdx b/website/src/pages/ur/indexing/tooling/graph-node.mdx index 4ced6b7faf14..43e33049d1cb 100644 --- a/website/src/pages/ur/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ur/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ A complete Kubernetes example configuration can be found in the [indexer reposit | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## اعلی درجے کی گراف نوڈ کنفیگریشن From 083d2fc684eb8143ef1646497e51381dff7e4d89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:10 -0400 Subject: [PATCH 1473/1709] New translations overview.mdx (Vietnamese) --- website/src/pages/vi/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/vi/indexing/overview.mdx b/website/src/pages/vi/indexing/overview.mdx index 3ffdf00a4346..57a0d4290650 100644 --- a/website/src/pages/vi/indexing/overview.mdx +++ b/website/src/pages/vi/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From a05fb12bbc9abf32659047089726fb18e388d5d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:12 -0400 Subject: [PATCH 1474/1709] New translations graph-node.mdx (Vietnamese) --- website/src/pages/vi/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/vi/indexing/tooling/graph-node.mdx b/website/src/pages/vi/indexing/tooling/graph-node.mdx index 673a3ece4d12..efa74b6e4e9c 100644 --- a/website/src/pages/vi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/vi/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From a0ce70e3b3db414900191ede7576f976d65b99ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:13 -0400 Subject: [PATCH 1475/1709] New translations overview.mdx (Marathi) --- website/src/pages/mr/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/mr/indexing/overview.mdx b/website/src/pages/mr/indexing/overview.mdx index ce44b1b7a1d4..d5967e1fad29 100644 --- a/website/src/pages/mr/indexing/overview.mdx +++ b/website/src/pages/mr/indexing/overview.mdx @@ -708,42 +708,6 @@ Note that supported action types for allocation management have different input Cost models provide dynamic pricing for queries based on market and query attributes. The Indexer Service shares a cost model with the gateways for each Subgraph for which they intend to respond to queries. The gateways, in turn, use the cost model to make Indexer selection decisions per query and to negotiate payment with chosen Indexers. -#### Agora - -The Agora language provides a flexible format for declaring cost models for queries. An Agora price model is a sequence of statements that execute in order for each top-level query in a GraphQL query. For each top-level query, the first statement which matches it determines the price for that query. - -A statement is comprised of a predicate, which is used for matching GraphQL queries, and a cost expression which when evaluated outputs a cost in decimal GRT. Values in the named argument position of a query may be captured in the predicate and used in the expression. Globals may also be set and substituted in for placeholders in an expression. - -Example cost model: - -``` -# This statement captures the skip value, -# uses a boolean expression in the predicate to match specific queries that use `skip` -# and a cost expression to calculate the cost based on the `skip` value and the SYSTEM_LOAD global -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -# This default will match any GraphQL expression. -# It uses a Global substituted into the expression to calculate cost -default => 0.1 * $SYSTEM_LOAD; -``` - -Example query costing using the above model: - -| Query | Price | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### Applying the cost model - -Cost models are applied via the Indexer CLI, which passes them to the Indexer Management API of the Indexer agent for storing in the database. The Indexer Service will then pick them up and serve the cost models to gateways whenever they ask for them. - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## Interacting with the network ### Stake in the protocol From 1de8ae2635630df55224b547ad45d42810f16d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:14 -0400 Subject: [PATCH 1476/1709] New translations graph-node.mdx (Marathi) --- website/src/pages/mr/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/mr/indexing/tooling/graph-node.mdx b/website/src/pages/mr/indexing/tooling/graph-node.mdx index 15ba0fbb69ab..1fc6025fdb34 100644 --- a/website/src/pages/mr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/mr/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ When it is running Graph Node exposes the following ports: | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus metrics | /metrics | \--metrics-port | - | -> **Important**: Be careful about exposing ports publicly - **administration ports** should be kept locked down. This includes the the Graph Node JSON-RPC endpoint. +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## प्रगत ग्राफ नोड कॉन्फिगरेशन From b5da03d0591d21f02adad6f3ef1f19182bab5e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:15 -0400 Subject: [PATCH 1477/1709] New translations overview.mdx (Hindi) --- website/src/pages/hi/indexing/overview.mdx | 36 ---------------------- 1 file changed, 36 deletions(-) diff --git a/website/src/pages/hi/indexing/overview.mdx b/website/src/pages/hi/indexing/overview.mdx index baf5fa61aacd..b575c93effd1 100644 --- a/website/src/pages/hi/indexing/overview.mdx +++ b/website/src/pages/hi/indexing/overview.mdx @@ -710,42 +710,6 @@ Supported action types के लिए आवंटन प्रबंधन कॉस्ट मॉडल बाज़ार और क्वेरी विशेषताओं के आधार पर क्वेरी के लिए डायनामिक मूल्य निर्धारण प्रदान करते हैं। Indexer Service प्रत्येक सबग्राफ के लिए गेटवे के साथ एक कॉस्ट मॉडल साझा करता है, जिसके लिए वे क्वेरी का जवाब देने का इरादा रखते हैं। बदले में, गेटवे इस कॉस्ट मॉडल का उपयोग प्रति क्वेरी Indexer चयन निर्णय लेने और चुने गए Indexers के साथ भुगतान पर बातचीत करने के लिए करते हैं। -#### Agora - -Agora भाषा क्वेरी के लिए लागत मॉडल घोषित करने के लिए एक लचीला प्रारूप प्रदान करती है। एक Agora मूल्य मॉडल बयानों का एक क्रम होता है जो प्रत्येक शीर्ष-स्तरीय GraphQL क्वेरी के लिए क्रम में निष्पादित होता है। प्रत्येक शीर्ष-स्तरीय क्वेरी के लिए, पहला कथन जो उससे मेल खाता है, उस क्वेरी के लिए मूल्य निर्धारित करता है। - -एक कथन में एक ​predicate​ होता है, जिसका उपयोग GraphQL queries से मिलान करने के लिए किया जाता है, और एक cost expression होता है, जो मूल्यांकन किए जाने पर दशमलव GRT में एक लागत आउटपुट करता है। किसी क्वेरी में नामित आर्गुमेंट स्थिति के मानों को predicate में कैप्चर किया जा सकता है और expression में उपयोग किया जा सकता है। Globals भी सेट किए जा सकते हैं और expression में प्लेसहोल्डर्स के लिए प्रतिस्थापित किए जा सकते हैं। - -उदाहरण लागत मॉडल: - -``` -#यह कथन skip मान को प्राप्त करता है, -#शर्त में एक बूलियन अभिव्यक्ति का उपयोग करता है ताकि skip का उपयोग करने वाले विशिष्ट क्वेरीज़ का मिलान किया जा सके, -#और skip मान और SYSTEM_LOAD ग्लोबल के आधार पर लागत की गणना करने के लिए लागत अभिव्यक्ति का उपयोग करता है। -query { pairs(skip: $skip) { id } } when $skip > 2000 => 0.0001 * $skip * $SYSTEM_LOAD; - -#यह डिफ़ॉल्ट किसी भी GraphQL अभिव्यक्ति से मेल खाएगा। -#यह ग्लोबल का उपयोग करके लागत की गणना करने के लिए अभिव्यक्ति में प्रतिस्थापित करता है। -default => 0.1 * $SYSTEM_LOAD; -``` - -उपरोक्त मॉडल का उपयोग करके उदाहरण क्वेरी लागत: - -| Query | कीमत | -| ---------------------------------------------------------------------------- | ------- | -| { pairs(skip: 5000) { id } } | 0.5 GRT | -| { tokens { symbol } } | 0.1 GRT | -| { pairs(skip: 5000) { id } tokens { symbol } } | 0.6 GRT | - -#### लागत मॉडल लागू करना - -कास्ट मॉडल को Indexer CLI के माध्यम से लागू किया जाता है, जो उन्हें Indexer एजेंट के Indexer Management API को पास करता है ताकि उन्हें डेटाबेस में संग्रहीत किया जा सके। इसके बाद, Indexer Service उन्हें लेगी और जब भी गेटवे इसकी मांग करेंगे, तो उन्हें कास्ट मॉडल प्रदान करेगी। - -```sh -indexer cost set variables '{ "SYSTEM_LOAD": 1.4 }' -indexer cost set model my_model.agora -``` - ## नेटवर्क के साथ इंटरैक्ट करना ### प्रोटोकॉल में staking From 37c2339e93b4db0d6ca28c230fc99f72a7953171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Thu, 5 Jun 2025 20:06:17 -0400 Subject: [PATCH 1478/1709] New translations graph-node.mdx (Hindi) --- website/src/pages/hi/indexing/tooling/graph-node.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/website/src/pages/hi/indexing/tooling/graph-node.mdx b/website/src/pages/hi/indexing/tooling/graph-node.mdx index c78de7612036..36b6b9de415e 100644 --- a/website/src/pages/hi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/hi/indexing/tooling/graph-node.mdx @@ -85,7 +85,12 @@ Kubernetes का एक पूर्ण उदाहरण कॉन्फ़ | 8030 | Subgraph indexing status API | /graphql | \--index-node-port | - | | 8040 | Prometheus मेट्रिक्स | /metrics | \--metrics-port | - | -> **प्रमुख बात**: सार्वजनिक रूप से पोर्ट्स को एक्सपोज़ करने में सावधानी बरतें - \*\*प्रशासनिक पोर्ट्स को लॉक रखना चाहिए। इसमें ग्राफ नोड JSON-RPC एंडपॉइंट भी शामिल है। +> **WARNING: Never expose Graph Node's administrative ports to the public**. +> +> - Exposing Graph Node's internal ports can lead to a full system compromise. +> - These ports must remain **private**: JSON-RPC Admin endpoint, Indexing Status API, and PostgreSQL. +> - Do not expose 8000 (GraphQL HTTP) and 8001 (GraphQL WebSocket) directly to the internet. Even though these are used for GraphQL queries, they should ideally be proxied though `indexer-agent` and served behind a production-grade proxy. +> - Lock everything else down with firewalls or private networks. ## Advanced Graph Node configuration From 81c2e98e16ede720dca5a8ed372eed3be27295f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:00 -0400 Subject: [PATCH 1479/1709] New translations overview.mdx (Romanian) --- website/src/pages/ro/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/indexing/overview.mdx b/website/src/pages/ro/indexing/overview.mdx index 53d970354a1d..767ec67a8691 100644 --- a/website/src/pages/ro/indexing/overview.mdx +++ b/website/src/pages/ro/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 2df731e9ee1e85687ddc0e7404572e5aca58ce10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:01 -0400 Subject: [PATCH 1480/1709] New translations graph-node.mdx (Romanian) --- website/src/pages/ro/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ro/indexing/tooling/graph-node.mdx b/website/src/pages/ro/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/ro/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ro/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From 05d51534bf0cdeeb0105c6e5881b6433a163ad3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:03 -0400 Subject: [PATCH 1481/1709] New translations overview.mdx (French) --- website/src/pages/fr/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/indexing/overview.mdx b/website/src/pages/fr/indexing/overview.mdx index eff530290a16..af6e461af61a 100644 --- a/website/src/pages/fr/indexing/overview.mdx +++ b/website/src/pages/fr/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Service de l'Indexeur** - Gère toutes les communications externes requises avec le réseau. Il partage les modèles de coûts et les états d'indexation, transmet les requêtes des passerelles à un Graph Node et gère les paiements des requêtes via des canaux d'état avec la passerelle. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Commencer à utiliser Docker From a81a82953e4a6acb81613f46ec5f94e1db753d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:04 -0400 Subject: [PATCH 1482/1709] New translations graph-node.mdx (French) --- website/src/pages/fr/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/fr/indexing/tooling/graph-node.mdx b/website/src/pages/fr/indexing/tooling/graph-node.mdx index 962076165183..778c72488582 100644 --- a/website/src/pages/fr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/fr/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### Nœuds IPFS -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Serveur de métriques Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Bien démarrer avec Kubernetes From 8a271ef735a00a7f480046d9a345e659c74f749c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:05 -0400 Subject: [PATCH 1483/1709] New translations overview.mdx (Spanish) --- website/src/pages/es/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/indexing/overview.mdx b/website/src/pages/es/indexing/overview.mdx index dc7a443a4f06..600f39e5662e 100644 --- a/website/src/pages/es/indexing/overview.mdx +++ b/website/src/pages/es/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 01d93765bccfd51674a4e67d92a4403816212405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:07 -0400 Subject: [PATCH 1484/1709] New translations graph-node.mdx (Spanish) --- website/src/pages/es/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/es/indexing/tooling/graph-node.mdx b/website/src/pages/es/indexing/tooling/graph-node.mdx index cb2c02025587..bbebb84bd22d 100644 --- a/website/src/pages/es/indexing/tooling/graph-node.mdx +++ b/website/src/pages/es/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### Nodos IPFS -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Servidor de métricas Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Introducción a Kubernetes From ea5d4220d872afe61dc89cf2eac2fd8bae7a4179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:08 -0400 Subject: [PATCH 1485/1709] New translations overview.mdx (Arabic) --- website/src/pages/ar/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/indexing/overview.mdx b/website/src/pages/ar/indexing/overview.mdx index 807c51cd39f0..d4a9e01205e4 100644 --- a/website/src/pages/ar/indexing/overview.mdx +++ b/website/src/pages/ar/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 1fc06566a133c6c88fc6a2f42622728aaa867261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:10 -0400 Subject: [PATCH 1486/1709] New translations graph-node.mdx (Arabic) --- website/src/pages/ar/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ar/indexing/tooling/graph-node.mdx b/website/src/pages/ar/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/ar/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ar/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From 64ad2e66e4198b96a7062512c1e9ffacf835240c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:11 -0400 Subject: [PATCH 1487/1709] New translations overview.mdx (Czech) --- website/src/pages/cs/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/indexing/overview.mdx b/website/src/pages/cs/indexing/overview.mdx index a5228d9b5881..21485c772522 100644 --- a/website/src/pages/cs/indexing/overview.mdx +++ b/website/src/pages/cs/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From b9a9cbd8ea1d6db14dd62c18a8f33642b69890dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:12 -0400 Subject: [PATCH 1488/1709] New translations graph-node.mdx (Czech) --- website/src/pages/cs/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/cs/indexing/tooling/graph-node.mdx b/website/src/pages/cs/indexing/tooling/graph-node.mdx index c1ff150aaa6a..9cee63a11f0c 100644 --- a/website/src/pages/cs/indexing/tooling/graph-node.mdx +++ b/website/src/pages/cs/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS uzly -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Metrický server Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Začínáme s Kubernetes From 3feb53c2b7307ae265354d27509dcfa36fb3b88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:14 -0400 Subject: [PATCH 1489/1709] New translations overview.mdx (German) --- website/src/pages/de/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/indexing/overview.mdx b/website/src/pages/de/indexing/overview.mdx index bfa9dd9f8703..38550ce65494 100644 --- a/website/src/pages/de/indexing/overview.mdx +++ b/website/src/pages/de/indexing/overview.mdx @@ -131,7 +131,7 @@ Im Zentrum der Infrastruktur eines Indexierers steht der Graph Node, der die ind - **Datenendpunkt** - Bei EVM-kompatiblen Netzwerken muss der Graph Node mit einem Endpunkt verbunden sein, der eine EVM-kompatible JSON-RPC-API bereitstellt. Dabei kann es sich um einen einzelnen Client handeln oder um ein komplexeres Setup, das die Last auf mehrere Clients verteilt. Es ist wichtig, sich darüber im Klaren zu sein, dass bestimmte Subgraphen besondere Client-Fähigkeiten erfordern, wie z. B. den Archivmodus und/oder die Paritätsverfolgungs-API. -- **IPFS-Knoten (Version kleiner als 5)** - Die Metadaten für die Subgraph-Bereitstellung werden im IPFS-Netzwerk gespeichert. Der Graph Node greift in erster Linie auf den IPFS-Knoten während der Bereitstellung des Subgraphen zu, um das Subgraphen-Manifest und alle verknüpften Dateien zu holen. Netzwerk-Indizierer müssen keinen eigenen IPFS-Knoten hosten, ein IPFS-Knoten für das Netzwerk wird unter https://ipfs.network.thegraph.com gehostet. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexierer-Dienst** - Erledigt alle erforderlichen externen Kommunikationen mit dem Netz. Teilt Kostenmodelle und Indizierungsstatus, leitet Abfrageanfragen von Gateways an einen Graph Node weiter und verwaltet die Abfragezahlungen über Statuskanäle mit dem Gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Erste Schritte mit Docker From 3ea4cf3311698f8d288d4ab1b90bbae0fcf04c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:15 -0400 Subject: [PATCH 1490/1709] New translations graph-node.mdx (German) --- website/src/pages/de/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/de/indexing/tooling/graph-node.mdx b/website/src/pages/de/indexing/tooling/graph-node.mdx index 4993250611d7..cb8182a9b3c8 100644 --- a/website/src/pages/de/indexing/tooling/graph-node.mdx +++ b/website/src/pages/de/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ Während einige Subgraphen nur einen vollständigen Knoten benötigen, können e ### IPFS-Knoten -Die Metadaten für den Einsatz von Subgraphen werden im IPFS-Netzwerk gespeichert. Der Graph Node greift während des Einsatzes von Subgraphen primär auf den IPFS-Knoten zu, um das Subgraphen-Manifest und alle verknüpften Dateien abzurufen. Netzwerkindizierer müssen keinen eigenen IPFS-Knoten hosten. Ein IPFS-Knoten für das Netzwerk wird auf https://ipfs.network.thegraph.com gehostet. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus-Metrikserver @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Erste Schritte mit Kubernetes From 79041dc995b8f055c71f847902bfe9c841f4c4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:17 -0400 Subject: [PATCH 1491/1709] New translations overview.mdx (Italian) --- website/src/pages/it/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/indexing/overview.mdx b/website/src/pages/it/indexing/overview.mdx index c6ab6bcd1e36..c35cbc2b8a4e 100644 --- a/website/src/pages/it/indexing/overview.mdx +++ b/website/src/pages/it/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From ae695f9ade8fb3c4af5ec43057d1e0c09895c260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:18 -0400 Subject: [PATCH 1492/1709] New translations graph-node.mdx (Italian) --- website/src/pages/it/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/it/indexing/tooling/graph-node.mdx b/website/src/pages/it/indexing/tooling/graph-node.mdx index 549140380490..8f079681a0af 100644 --- a/website/src/pages/it/indexing/tooling/graph-node.mdx +++ b/website/src/pages/it/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### Nodi IPFS -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Server di metriche Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Come iniziare con Kubernetes From 0e84a68a8b889f6f7f06db714bc58352004a53c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:19 -0400 Subject: [PATCH 1493/1709] New translations overview.mdx (Japanese) --- website/src/pages/ja/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/indexing/overview.mdx b/website/src/pages/ja/indexing/overview.mdx index 123bbd010a89..da40b4b0353f 100644 --- a/website/src/pages/ja/indexing/overview.mdx +++ b/website/src/pages/ja/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 9f794e9cc9f84362efa2678543d0873bb3f0492e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:21 -0400 Subject: [PATCH 1494/1709] New translations graph-node.mdx (Japanese) --- website/src/pages/ja/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ja/indexing/tooling/graph-node.mdx b/website/src/pages/ja/indexing/tooling/graph-node.mdx index 68641d3a9958..2778a2e090b2 100644 --- a/website/src/pages/ja/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ja/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFSノード -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus メトリクスサーバー @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetesを始めるにあたって From 7d553e3024593498292f8a4d385f06145b546db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:22 -0400 Subject: [PATCH 1495/1709] New translations overview.mdx (Korean) --- website/src/pages/ko/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/indexing/overview.mdx b/website/src/pages/ko/indexing/overview.mdx index 53d970354a1d..767ec67a8691 100644 --- a/website/src/pages/ko/indexing/overview.mdx +++ b/website/src/pages/ko/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From e3111827a6e161c27917e9d0555b71d356395759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:23 -0400 Subject: [PATCH 1496/1709] New translations graph-node.mdx (Korean) --- website/src/pages/ko/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ko/indexing/tooling/graph-node.mdx b/website/src/pages/ko/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/ko/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ko/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From 1c5ad7ba87f86b14166c0ab38752e47dd8305d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:25 -0400 Subject: [PATCH 1497/1709] New translations overview.mdx (Dutch) --- website/src/pages/nl/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/indexing/overview.mdx b/website/src/pages/nl/indexing/overview.mdx index 2093bd27ec24..e056d7f467c4 100644 --- a/website/src/pages/nl/indexing/overview.mdx +++ b/website/src/pages/nl/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From c2b973d720f5f563e7092ce52ad2804b1a9634f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:26 -0400 Subject: [PATCH 1498/1709] New translations graph-node.mdx (Dutch) --- website/src/pages/nl/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/nl/indexing/tooling/graph-node.mdx b/website/src/pages/nl/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/nl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/nl/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From f1720a5964e258d33f590a1b0aae3af5d3cc3798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:27 -0400 Subject: [PATCH 1499/1709] New translations overview.mdx (Polish) --- website/src/pages/pl/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/indexing/overview.mdx b/website/src/pages/pl/indexing/overview.mdx index 53d970354a1d..767ec67a8691 100644 --- a/website/src/pages/pl/indexing/overview.mdx +++ b/website/src/pages/pl/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From a441c144567ade575f5497bbaf6760619b89b636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:28 -0400 Subject: [PATCH 1500/1709] New translations graph-node.mdx (Polish) --- website/src/pages/pl/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pl/indexing/tooling/graph-node.mdx b/website/src/pages/pl/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/pl/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pl/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From 223afa35630009475cb538b9621c092c524a3343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:30 -0400 Subject: [PATCH 1501/1709] New translations overview.mdx (Portuguese) --- website/src/pages/pt/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/indexing/overview.mdx b/website/src/pages/pt/indexing/overview.mdx index 94cb2398c0db..f53eaae266de 100644 --- a/website/src/pages/pt/indexing/overview.mdx +++ b/website/src/pages/pt/indexing/overview.mdx @@ -131,7 +131,7 @@ O núcleo da infraestrutura de um Indexador é o Graph Node, que monitora as red - **Endpoint de dados** — Para redes compatíveis com EVMs, o Graph Node deve estar conectado a um endpoint que expõe uma API JSON-RPC compatível com EVMs. Isto pode ser um único cliente, ou um setup mais complexo que carrega saldos em várias redes. É importante saber que certos subgraphs exigirão capabilidades particulares de clientes, como um modo de arquivo e/ou uma API de rastreamento. -- **Node IPFS (versão abaixo de 5)** — Os metadados de lançamento de subgraph são armazenados na rede IPFS. O Graph Node acessa primariamente o node IPFS durante o lançamento do subgraph, para retirar o manifest e todos os arquivos ligados. Indexadores de rede não precisam hospedar seu próprio node IPFS, pois já há um hospedado para a rede em https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Serviço de Indexador** — Cuida de todas as comunicações externas com a rede requeridas. Divide modelos de custo e estados de indexação, passa pedidos de query de gateways para um Graph Node, e monitora os pagamentos de query através de canais de estado com o gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Como começar a usar o Docker From 2af457144f96289e604ccb4188a436c32fea77d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:31 -0400 Subject: [PATCH 1502/1709] New translations graph-node.mdx (Portuguese) --- website/src/pages/pt/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/pt/indexing/tooling/graph-node.mdx b/website/src/pages/pt/indexing/tooling/graph-node.mdx index 8429c7d50067..d560a9bf50fd 100644 --- a/website/src/pages/pt/indexing/tooling/graph-node.mdx +++ b/website/src/pages/pt/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ Enquanto alguns subgraphs exigem apenas um node completo, alguns podem ter recur ### Nodes IPFS -Os metadados de implantação de subgraph são armazenados na rede IPFS. O Graph Node acessa primariamente o node IPFS durante a implantação do subgraph, para retirar o manifest e todos os arquivos ligados. Os indexadores de rede não precisam hospedar seu próprio node IPFS. Um node IPFS para a rede é hospedado em https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Servidor de métricas Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Como começar com Kubernetes From 9ee0b1c4987bdcb2815436c68469ee3f2c0fd978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:33 -0400 Subject: [PATCH 1503/1709] New translations overview.mdx (Russian) --- website/src/pages/ru/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/indexing/overview.mdx b/website/src/pages/ru/indexing/overview.mdx index 5bd31405ab1b..6de40d23f959 100644 --- a/website/src/pages/ru/indexing/overview.mdx +++ b/website/src/pages/ru/indexing/overview.mdx @@ -131,7 +131,7 @@ query indexerAllocations { - **Конечная точка данных** – для сетей, совместимых с EVM, Graph Node должна быть подключена к конечной точке, предоставляющей JSON-RPC API, совместимый с EVM. Это может быть как один клиент, так и более сложная конфигурация с балансировкой нагрузки между несколькими клиентами. Важно учитывать, что некоторые Субграфы требуют определённых возможностей клиента, таких как архивный режим и/или API трассировки Parity. -- **IPFS-нода (версия ниже 5)** – метаданные развертывания Субграфа хранятся в сети IPFS. Graph Node в основном обращается к IPFS-ноде во время развертывания Субграфа, чтобы получить манифест Субграфа и все связанные файлы. Индексаторы сети не обязаны размещать свою собственную IPFS-ноду, так как для сети уже развернута IPFS-нода по адресу: [https://ipfs.network.thegraph.com](https://ipfs.network.thegraph.com). +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Сервис Индексатора** – обрабатывает все необходимые внешние коммуникации с сетью. Делится моделями стоимости и статусами индексирования, передаёт запросы от шлюзов в Graph Node и управляет платежами за запросы через каналы состояния со шлюзом. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Начало работы с Docker From f1390cd22aa7c6242a083fc5b4f1ad663d2a8220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:34 -0400 Subject: [PATCH 1504/1709] New translations graph-node.mdx (Russian) --- website/src/pages/ru/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ru/indexing/tooling/graph-node.mdx b/website/src/pages/ru/indexing/tooling/graph-node.mdx index dd5d44fc2851..946445499e19 100644 --- a/website/src/pages/ru/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ru/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### Ноды IPFS -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Сервер метрик Prometheus @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Начало работы с Kubernetes From 5737990fa0436b63a444f4c819a84f484aac6dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:35 -0400 Subject: [PATCH 1505/1709] New translations overview.mdx (Swedish) --- website/src/pages/sv/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/indexing/overview.mdx b/website/src/pages/sv/indexing/overview.mdx index 1915b6b68fef..7e134f5061bd 100644 --- a/website/src/pages/sv/indexing/overview.mdx +++ b/website/src/pages/sv/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From f663f2c9d8821ed86b73a5d0e29ff96358faedc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:36 -0400 Subject: [PATCH 1506/1709] New translations graph-node.mdx (Swedish) --- website/src/pages/sv/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/sv/indexing/tooling/graph-node.mdx b/website/src/pages/sv/indexing/tooling/graph-node.mdx index 5102ea3db588..588e40109405 100644 --- a/website/src/pages/sv/indexing/tooling/graph-node.mdx +++ b/website/src/pages/sv/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS-noder -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus server för mätvärden @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Komma igång med Kubernetes From a18e2e3b97e244a9bab6720ccb77950823f02dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:38 -0400 Subject: [PATCH 1507/1709] New translations overview.mdx (Turkish) --- website/src/pages/tr/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/indexing/overview.mdx b/website/src/pages/tr/indexing/overview.mdx index 6572a4bb9f42..0cb6ecd50acb 100644 --- a/website/src/pages/tr/indexing/overview.mdx +++ b/website/src/pages/tr/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 4a3077aeefe30afc6e3e90f61ad68731b7373df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:39 -0400 Subject: [PATCH 1508/1709] New translations graph-node.mdx (Turkish) --- website/src/pages/tr/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/tr/indexing/tooling/graph-node.mdx b/website/src/pages/tr/indexing/tooling/graph-node.mdx index c25e0c630ab0..8d699baf94a6 100644 --- a/website/src/pages/tr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/tr/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Düğümleri -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrik sunucusu @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetes'i kullanmaya başlarken From 0f4f452ce11b6539c1b39f1e68340ee53c28907c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:41 -0400 Subject: [PATCH 1509/1709] New translations overview.mdx (Ukrainian) --- website/src/pages/uk/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/indexing/overview.mdx b/website/src/pages/uk/indexing/overview.mdx index 1c4516a90031..70df6a71369e 100644 --- a/website/src/pages/uk/indexing/overview.mdx +++ b/website/src/pages/uk/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From a411364abd47fd09cda80a4fb11fc414e854869e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:42 -0400 Subject: [PATCH 1510/1709] New translations graph-node.mdx (Ukrainian) --- website/src/pages/uk/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/uk/indexing/tooling/graph-node.mdx b/website/src/pages/uk/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/uk/indexing/tooling/graph-node.mdx +++ b/website/src/pages/uk/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From 642fbc41c9ecfa7db7c38cdf84a74cf15dc17bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:43 -0400 Subject: [PATCH 1511/1709] New translations overview.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/indexing/overview.mdx b/website/src/pages/zh/indexing/overview.mdx index 1e8b34d131b0..5329275d11da 100644 --- a/website/src/pages/zh/indexing/overview.mdx +++ b/website/src/pages/zh/indexing/overview.mdx @@ -131,7 +131,7 @@ query indexerAllocations { - **数据端点**-对于兼容EVM的网络,Graph节点需要连接到一个公开兼容EVM JSON-RPC API的端点。这可以采取单个客户端的形式,也可以是跨多个客户端进行负载平衡的更复杂的设置。需要注意的是,某些子图将需要特定的客户端功能,如存档模式和/或奇偶校验跟踪API。 -- **IPFS 节点(版本小于 5)** - 子图部署元数据存储在 IPFS 网络上。 Graph节点在子图部署期间主要访问 IPFS 节点,以获取子图清单和所有链接文件。 网络索引人不需要托管自己的 IPFS 节点,网络的 IPFS 节点是托管在https://ipfs.network.thegraph.com。 +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **索引人服务** -处理所有网络必要的外部通信。 共享成本模型和索引状态,将来自网关的查询请求传递给一个Graph节点,并通过状态通道与网关管理查询支付。 @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### 使用 Docker From 62436873c6480e70ab3270dd6eb05203d99c62f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:44 -0400 Subject: [PATCH 1512/1709] New translations graph-node.mdx (Chinese Simplified) --- website/src/pages/zh/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/zh/indexing/tooling/graph-node.mdx b/website/src/pages/zh/indexing/tooling/graph-node.mdx index 56b82f910b2d..c659ecdc252b 100644 --- a/website/src/pages/zh/indexing/tooling/graph-node.mdx +++ b/website/src/pages/zh/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ Graph节点的主存储区,这是存储子图数据、子图元数据以及子 ### IPFS节点 -子图部署元数据存储在IPFS网络上。Graph节点主要在子图部署期间访问IPFS节点,以获取子图清单和所有链接文件。网络索引人不需要托管自己的IPFS节点。网络的IPFS节点托管于https://ipfs.network.thegraph.com。 +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus指标服务器 @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetes入门 From 372b26deaada5f06211d1b5b1216a596446eec9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:46 -0400 Subject: [PATCH 1513/1709] New translations overview.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/indexing/overview.mdx b/website/src/pages/ur/indexing/overview.mdx index 54bff09db5c4..7319f726b419 100644 --- a/website/src/pages/ur/indexing/overview.mdx +++ b/website/src/pages/ur/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 19cf1cea06aa3506de01649404d63f9bfa2fcfed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:47 -0400 Subject: [PATCH 1514/1709] New translations graph-node.mdx (Urdu (Pakistan)) --- website/src/pages/ur/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/ur/indexing/tooling/graph-node.mdx b/website/src/pages/ur/indexing/tooling/graph-node.mdx index 43e33049d1cb..3fd93aaa531f 100644 --- a/website/src/pages/ur/indexing/tooling/graph-node.mdx +++ b/website/src/pages/ur/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS نوڈس -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus میٹرکس سرور @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetes کے ساتھ شروع کریں From d9e6779d2cc7a140f14889c2f51f3de9b51ac794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:48 -0400 Subject: [PATCH 1515/1709] New translations overview.mdx (Vietnamese) --- website/src/pages/vi/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/indexing/overview.mdx b/website/src/pages/vi/indexing/overview.mdx index 57a0d4290650..0b2db068caf7 100644 --- a/website/src/pages/vi/indexing/overview.mdx +++ b/website/src/pages/vi/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From a518ef6472e56e942d46b010a402a6f5c865521d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:50 -0400 Subject: [PATCH 1516/1709] New translations graph-node.mdx (Vietnamese) --- website/src/pages/vi/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/vi/indexing/tooling/graph-node.mdx b/website/src/pages/vi/indexing/tooling/graph-node.mdx index efa74b6e4e9c..56cea09618e3 100644 --- a/website/src/pages/vi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/vi/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### IPFS Nodes -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### Prometheus metrics server @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Getting started with Kubernetes From b01929aafcaffd6771d7fa0f7aa0553288e2d4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:51 -0400 Subject: [PATCH 1517/1709] New translations overview.mdx (Marathi) --- website/src/pages/mr/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/indexing/overview.mdx b/website/src/pages/mr/indexing/overview.mdx index d5967e1fad29..57417928daa5 100644 --- a/website/src/pages/mr/indexing/overview.mdx +++ b/website/src/pages/mr/indexing/overview.mdx @@ -131,7 +131,7 @@ At the center of an Indexer's infrastructure is the Graph Node which monitors th - **Data endpoint** - For EVM-compatible networks, Graph Node needs to be connected to an endpoint that exposes an EVM-compatible JSON-RPC API. This may take the form of a single client or it could be a more complex setup that load balances across multiple. It's important to be aware that certain Subgraphs will require particular client capabilities such as archive mode and/or the parity tracing API. -- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer service** - Handles all required external communications with the network. Shares cost models and indexing statuses, passes query requests from gateways on to a Graph Node, and manages the query payments via state channels with the gateway. @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Getting started using Docker From 78d5e4a5686469df30f2c7fb5ea1f984d00f3c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:52 -0400 Subject: [PATCH 1518/1709] New translations graph-node.mdx (Marathi) --- website/src/pages/mr/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/mr/indexing/tooling/graph-node.mdx b/website/src/pages/mr/indexing/tooling/graph-node.mdx index 1fc6025fdb34..460b59a35703 100644 --- a/website/src/pages/mr/indexing/tooling/graph-node.mdx +++ b/website/src/pages/mr/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ While some Subgraphs may just require a full node, some may have indexing featur ### आयपीएफएस नोड्स -Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### प्रोमिथियस मेट्रिक्स सर्व्हर @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetes सह प्रारंभ करणे From fd01aed3ad2ce67c75bd76b82c532f6f12085ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:54 -0400 Subject: [PATCH 1519/1709] New translations overview.mdx (Hindi) --- website/src/pages/hi/indexing/overview.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/indexing/overview.mdx b/website/src/pages/hi/indexing/overview.mdx index b575c93effd1..ea95d6557970 100644 --- a/website/src/pages/hi/indexing/overview.mdx +++ b/website/src/pages/hi/indexing/overview.mdx @@ -131,7 +131,7 @@ Indexer के इंफ्रास्ट्रक्चर के केंद - **डेटा एंडपॉइंट** - EVM-संगत नेटवर्क्स के लिए, Graph Node को एक ऐसे एंडपॉइंट से कनेक्ट करने की आवश्यकता होती है जो EVM-संगत JSON-RPC API को एक्सपोज़ करता हो। यह एक सिंगल क्लाइंट के रूप में हो सकता है या यह एक अधिक जटिल सेटअप हो सकता है जो मल्टीपल क्लाइंट्स के बीच लोड बैलेंस करता हो। यह जानना महत्वपूर्ण है कि कुछ सबग्राफ को विशेष क्लाइंट क्षमताओं की आवश्यकता हो सकती है, जैसे कि आर्काइव मोड और/या पैरिटी ट्रेसिंग API। -- **IPFS node (संस्करण 5 से कम)** - सबग्राफ डिप्लॉयमेंट मेटाडेटा IPFS नेटवर्क पर स्टोर किया जाता है। The Graph Node मुख्य रूप से सबग्राफ डिप्लॉयमेंट के दौरान IPFS node तक पहुंचता है ताकि सबग्राफ मैनिफेस्ट और सभी लिंक की गई फ़ाइलों को प्राप्त किया जा सके। नेटवर्क Indexers को अपना स्वयं का IPFS node होस्ट करने की आवश्यकता नहीं है, नेटवर्क के लिए एक IPFS node होस्ट किया गया है: https://ipfs.network.thegraph.com. +- **IPFS node (version less than 5)** - Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network Indexers do not need to host their own IPFS node, an IPFS node for the network is hosted at https://ipfs.thegraph.com. - **Indexer सेवा** - आवश्यक बाहरी संचार को नेटवर्क के साथ संभालती है। लागत मॉडल और इंडेक्सिंग स्थितियों को साझा करती है, गेटवे से आने वाले क्वेरी अनुरोधों को एक Graph Node तक पहुंचाती है, और गेटवे के साथ स्टेट चैनलों के माध्यम से क्वेरी भुगतान को प्रबंधित करती है। @@ -331,7 +331,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` #### Docker का उपयोग शुरू करना From 2073b6b96649c603524580c3af8f4d6bce0c6eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:55 -0400 Subject: [PATCH 1520/1709] New translations graph-node.mdx (Hindi) --- website/src/pages/hi/indexing/tooling/graph-node.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/pages/hi/indexing/tooling/graph-node.mdx b/website/src/pages/hi/indexing/tooling/graph-node.mdx index 36b6b9de415e..4bc6a8223264 100644 --- a/website/src/pages/hi/indexing/tooling/graph-node.mdx +++ b/website/src/pages/hi/indexing/tooling/graph-node.mdx @@ -26,7 +26,7 @@ Graph Node (और पूरा indexer stack) को bare metal पर या ### आईपीएफएस नोड्स -सबग्राफ तैनाती मेटाडेटा IPFS नेटवर्क पर संग्रहीत होता है। ग्राफ नोड मुख्य रूप से सबग्राफ तैनाती के दौरान IPFS नोड तक पहुँचता है ताकि सबग्राफ मैनिफेस्ट और सभी लिंक किए गए फ़ाइलों को प्राप्त कर सके। नेटवर्क Indexer को अपने स्वयं के IPFS नोड की मेज़बानी करने की आवश्यकता नहीं है। नेटवर्क के लिए एक IPFS नोड यहाँ होस्ट किया गया है: https://ipfs.network.thegraph.com. +Subgraph deployment metadata is stored on the IPFS network. The Graph Node primarily accesses the IPFS node during Subgraph deployment to fetch the Subgraph manifest and all linked files. Network indexers do not need to host their own IPFS node. An IPFS node for the network is hosted at https://ipfs.thegraph.com. ### प्रोमेथियस मेट्रिक्स सर्वर @@ -66,7 +66,7 @@ createdb graph-node cargo run -p graph-node --release -- \ --postgres-url postgresql://[USERNAME]:[PASSWORD]@localhost:5432/graph-node \ --ethereum-rpc [NETWORK_NAME]:[URL] \ - --ipfs https://ipfs.network.thegraph.com + --ipfs https://ipfs.thegraph.com ``` ### Kubernetes के साथ शुरुआत करना From 0f509b5b0415b445b21ecaf93fbb579bd86bf4bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:56 -0400 Subject: [PATCH 1521/1709] New translations new-chain-integration.mdx (Romanian) --- website/src/pages/ro/indexing/new-chain-integration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/indexing/new-chain-integration.mdx b/website/src/pages/ro/indexing/new-chain-integration.mdx index c401fa57b348..cf698522f7e5 100644 --- a/website/src/pages/ro/indexing/new-chain-integration.mdx +++ b/website/src/pages/ro/indexing/new-chain-integration.mdx @@ -63,7 +63,7 @@ Configuring Graph Node is as easy as preparing your local environment. Once your > Do not change the env var name itself. It must remain `ethereum` even if the network name is different. -3. Run an IPFS node or use the one used by The Graph: https://api.thegraph.com/ipfs/ +3. Run an IPFS node or use the one used by The Graph: https://ipfs.thegraph.com ## Substreams-powered Subgraphs From fbf0e9f08c3728537785206f462b715610cc94b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Rouleau?= Date: Fri, 6 Jun 2025 15:17:57 -0400 Subject: [PATCH 1522/1709] New translations publishing-a-subgraph.mdx (Romanian) --- .../subgraphs/developing/publishing/publishing-a-subgraph.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/pages/ro/subgraphs/developing/publishing/publishing-a-subgraph.mdx b/website/src/pages/ro/subgraphs/developing/publishing/publishing-a-subgraph.mdx index 2bc0ec5f514c..e3e3a7e3d455 100644 --- a/website/src/pages/ro/subgraphs/developing/publishing/publishing-a-subgraph.mdx +++ b/website/src/pages/ro/subgraphs/developing/publishing/publishing-a-subgraph.mdx @@ -53,7 +53,7 @@ USAGE FLAGS -h, --help Show CLI help. - -i, --ipfs= [default: https://api.thegraph.com/ipfs/api/v0] Upload build results to an IPFS node. + -i, --ipfs= [default: https://ipfs.thegraph.com/api/v0] Upload build results to an IPFS node. --ipfs-hash= IPFS hash of the subgraph manifest to deploy. --protocol-network=