A plataforma indexa os dados do Ethereum com base nas descrições dos subgrafos, referidas como “manifesto de subgrafos”. A descrição de um subgrafo define contratos inteligentes de interesse para um subgrafo, eventos neles para prestar atenção, e como mapear os dados dos eventos para os dados que The Graph armazena em seu banco de dados. Uma vez que um manifesto de subgrafo é escrito, a interface de linha de comando (CLI) do Graph é usada para armazenar a definição e instruir o indexador a começar a indexar dados para esse subgrafo. O Graph Node verifica continuamente o Ethereum em busca de novos blocos e dados para os subgrafos que eles possam conter. Uma vez que um Dapp adiciona dados à blockchain através de uma transação em um contrato inteligente, ele emite um ou mais eventos durante o processamento da transação. Graças a isso, The Graph Node pode encontrar eventos do Ethereum em blocos e executar manipuladores de mapeamento fornecidos. O mapeamento é um módulo WebAssembly que cria ou atualiza entidades de dados que Graph Node armazena em resposta a eventos Ethereum. Um Dapp consulta o Graph Node por dados indexados a partir da blockchain, através do endpoint GraphQL do nó, cujas consultas são então traduzidas em consultas para o armazenamento de dados subjacente do Graph Node, fazendo uso das capacidades de indexação da loja. Esses dados são então exibidos pelo Dapp para os usuários finais, que os utilizam para emitir novas traduções.