{"id":13692401,"url":"https://github.com/TrueBlocks/trueblocks-core","last_synced_at":"2025-05-02T19:32:15.163Z","repository":{"id":36984648,"uuid":"87072460","full_name":"TrueBlocks/trueblocks-core","owner":"TrueBlocks","description":"The main repository for the TrueBlocks system","archived":false,"fork":false,"pushed_at":"2025-04-25T02:52:36.000Z","size":672565,"stargazers_count":1065,"open_issues_count":27,"forks_count":214,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-30T07:04:52.141Z","etag":null,"topics":["blockchain","command-line-tools","ethereum","indexing"],"latest_commit_sha":null,"homepage":"https://trueblocks.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TrueBlocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-04-03T12:39:10.000Z","updated_at":"2025-04-28T14:35:56.000Z","dependencies_parsed_at":"2023-09-22T07:33:02.148Z","dependency_job_id":"85e0297c-58c6-4188-a11c-ad6b03448453","html_url":"https://github.com/TrueBlocks/trueblocks-core","commit_stats":{"total_commits":9597,"total_committers":55,"mean_commits":174.4909090909091,"dds":"0.23955402730019792","last_synced_commit":"c4c09cafc1381d11a9451be44000b62746caab65"},"previous_names":["great-hill-corporation/trueblocks-core"],"tags_count":103,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrueBlocks%2Ftrueblocks-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrueBlocks%2Ftrueblocks-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrueBlocks%2Ftrueblocks-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrueBlocks%2Ftrueblocks-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TrueBlocks","download_url":"https://codeload.github.com/TrueBlocks/trueblocks-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252095359,"owners_count":21693903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","command-line-tools","ethereum","indexing"],"created_at":"2024-08-02T17:00:57.534Z","updated_at":"2025-05-02T19:32:10.153Z","avatar_url":"https://github.com/TrueBlocks.png","language":"Go","funding_links":[],"categories":["Development","C","Shell"],"sub_categories":[],"readme":"\u003cb\u003eIf you have an existing installation, complete applicable [Migrations](https://github.com/TrueBlocks/trueblocks-core/blob/develop/MIGRATIONS.md) before proceeding.\u003c/b\u003e\u003chr\u003e\n\n\u003ch1\u003eTrueBlocks / Unchained Index\u003c/h1\u003e\n\n![GitHub repo size](https://img.shields.io/github/repo-size/TrueBlocks/trueblocks-core)\n[![GitHub contributors](https://img.shields.io/github/contributors/TrueBlocks/trueblocks-core)](https://github.com/TrueBlocks/trueblocks-core/contributors)\n[![GitHub stars](https://img.shields.io/github/stars/TrueBlocks/trueblocks-core?style%3Dsocial)](https://github.com/TrueBlocks/trueblocks-core/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/TrueBlocks/trueblocks-core?style=social)](https://github.com/TrueBlocks/trueblocks-core/network/members)\n[![Twitter Follow](https://img.shields.io/twitter/follow/trueblocks?style=social)](https://twitter.com/trueblocks)\n\n**Table of Contents**\n\n- [Introduction](#introduction)\n- [Installing](#installing)\n- [Command line](#command-line)\n- [Chifra Serve](#chifra-serve)\n- [Troubleshooting](#troubleshooting)\n- [The unchained index](#the-unchained-index)\n- [Docker version](#docker-version)\n- [Documentation](#documentation)\n- [Linting](#linting)\n- [Contributing](#contributing)\n- [Contact](#contact)\n- [List of Contributors](#list-of-contributors)\n\n## Introduction\n\nTrueBlocks improves access to blockchain data for EVM-compatible chains (particularly Ethereum mainnet) while remaining entirely local.\n\nFeatures:\n\n- `chifra init` and `chifra scrape` which builds the Unchained Index, an index of address appearances that provides lightning-fast access to transactional histories,\n\n- An optional binary cache, which speeds up queries to the RPC by orders of magnitude,\n\n- Enhanced command-line options enabling much better access to chain data for data scientists and analysts. For example, easily extract all `logs` produced by a smart\ncontract or view all ERC-20 holdings for an account, etc.,\n\n- Advanced tools for producing reconciled \"bank statements\" and accounting export for any token including ETH.\n\n- An infinite number of other things restricted only by your imagination.\n\n## Installing\n\nPlease see [the installation instructions](https://trueblocks.io/docs/install/install-trueblocks) on our website.\n\n**Searching account histories**\n\nWhile optional, you most likely want to use the Unchained Index to search account histories. To do so, [get the index](https://trueblocks.io/docs/install/get-the-index/).\n\n**Account explorer**\n\nYou may use the command line, of course, to access data, but you may also wish to run an API server:\n\n```[shell]\nchifra daemon\n```\n\nUse `curl` to pull data or use it to drive our \"pre-beta\" Account Explorer. See [installing the explorer](https://trueblocks.io/docs/install/install-explorer/). The API provides the identical tools and options as the command line and it [documented here](https://trueblocks.io/api/).\n\n## Command line\n\nThe TrueBlocks command-line tool is called `chifra`. This gives you access to all the other tools:\n\n```[shell]\nchifra --help\n```\n\nGet more help on any sub-command with `chifra \u003ccmd\u003e --help`. Full documentation is available on [our website](https://trueblocks.io).\n\n## Chifra Serve\n\nOne of `chifra's` command line tools is called `serve`. This tool provides a simple API mimicking the command line. It is intended to be used only for single user environments.\n\nTo start the server, run:  \n\n```[shell]\nchifra server\n```\n\n\u003cspan style=\"size: -2; background-color: #febfc1; color: black; display: block; padding: 4px\"\u003eChifra was built for the command line, a fact we purposefully take advantage of to ensure continued operation on small machines. As such, this tool is not intended to serve multiple end users in a cloud-based server environment. This is by design. Be forewarned.\u003c/span\u003e\n\nGet more help on any sub-command with `chifra \u003ccmd\u003e --help`. Full documentation is available on [our website](https://trueblocks.io).\n\n**Getting data**\n\nLet's look at the first subcommand, called `status`.\n\n```[shell]\nchifra status\n```\n\nIf you get a bunch of data, congratulations, your installation is working. Try this command which shows every 10th block between the first and the 100,000th:\n\n```[shell]\nchifra blocks 0-100000:10\n```\n\nYou should see a long stream of data. Kill the display with `Control+C`.\n\nSee the entire list of chifra commands with `chifra --help`.\n\n## Troubleshooting\n\nDepending on your setup, you may get the following error message when you run some `chifra` commands:\n\n```[shell]\n  Warning: A request to your Ethereum node (http://localhost:8545)\n  resulted in the following error [Could not connect to server].\n  Specify a valid rpcProvider by editing $rootPath/trueblocks.toml.\n```\n\nEdit the file as instructed. You may find helpful [answers on our FAQ](https://trueblocks.io/blog/faq/).\n\nSee [our blog](https://trueblocks.io/blog/) for a lot of useful articles on getting started and using TrueBlocks.\n\nIf you continue to have trouble, join our [discord discussion](https://discord.gg/kAFcZH2x7K)\n\n## The unchained index\n\nThe primary data structure produced by TrueBlocks is an index of address appearances called the Unchained Index. This index provides very quick access to transaction histories for any address.\n\nYou may either build the entire index from scratch (requires an EVM-compatible tracing/archive node) or you may download a snapshot of the index build from there.\n\nThis process is described in the article [Indexing Addresses](https://trueblocks.io/docs/install/get-the-index/).\n\n## Docker version\n\nOur [official docker version](https://github.com/TrueBlocks/trueblocks-docker) is in a separate repo. Please see that repo for more information on running with Docker.\n\n## Documentation\n\nThe TrueBlocks [documentation repo](https://github.com/TrueBlocks/trueblocks-docs) builds the TrueBlocks website. See our website for the [best available documentation](https://trueblocks.io/).\n\n## Linting\n\nOur build process requires the code you submit to be linted.\n\nIn order to that, you must install the GoLang linters. [See this page for more information](https://golangci-lint.run/usage/install/).\n\nTo install the primary linter (called `golangci-lint`), run this command:\n\n```[shell]\ncurl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.53.3\n```\n\nVerify the installation with `golangci-lint --version`. You should see something like this:\n\n```[shell]\ngolangci-lint has version 1.50.1 built from \u003ccommit\u003e on \u003cdate\u003e\n```\n\nNext, run `golangci-lint linters`. Your system should have [at least the default list](https://golangci-lint.run/usage/linters/) to properly lint your submission.\n\n```[shell]\n\u003e golangci-lint linters\n\n\n```\nYou are encouraged to use additional linters. If you do, and you think they're useful, please suggest that we add it to our build process.\n\n## Contributing\n\nA chart showing the number of stars on our repo over time.\n\n[![Stargazers over time](https://starchart.cc/TrueBlocks/trueblocks-core.svg)](https://starchart.cc/TrueBlocks/trueblocks-core)\n\nWe love contributors. Please see information about our [workflow](https://github.com/TrueBlocks/trueblocks-core/blob/develop/docs/BRANCHING.md) before proceeding.\n\n1. Fork this repository into your own repo.\n2. Create a branch: `git checkout -b \u003cbranch_name\u003e`.\n3. Make changes to your local branch and commit them to your forked repo: `git commit -m '\u003ccommit_message\u003e'`\n4. Push back to the original branch: `git push origin TrueBlocks/trueblocks-core`\n5. Create the pull request.\n\n## Contact\n\nIf you have questions, comments, or complaints, please join the discussion on our discord server which is [linked from our website](https://trueblocks.io).\n\n## List of Contributors\n\nThanks to the following people who have contributed to this project:\n\n- [@tjayrush](https://github.com/tjayrush)\n- [@dszlachta](https://github.com/dszlachta)\n- [@wildmolasses](https://github.com/wildmolasses)\n- [@MysticRyuujin](https://github.com/MysticRyuujin)\n- [@MattDodsonEnglish](https://github.com/MattDodsonEnglish)\n- [@crodnun](https://github.com/crodnun)\n- many others\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTrueBlocks%2Ftrueblocks-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTrueBlocks%2Ftrueblocks-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTrueBlocks%2Ftrueblocks-core/lists"}