{"id":19967588,"url":"https://github.com/ceramicstudio/eigentrust-orbis-example","last_synced_at":"2025-03-01T17:41:11.789Z","repository":{"id":255070843,"uuid":"848444100","full_name":"ceramicstudio/eigentrust-orbis-example","owner":"ceramicstudio","description":"A demo that how AI agent networks can store trust assertions on Ceramic and use the EigenTrust algorithm to calculate global peer scores","archived":false,"fork":false,"pushed_at":"2024-12-14T08:08:53.000Z","size":6735,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-12T08:44:09.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceramicstudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-27T19:13:05.000Z","updated_at":"2024-09-09T21:03:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"667d1793-367d-4955-bca1-b33cefb759df","html_url":"https://github.com/ceramicstudio/eigentrust-orbis-example","commit_stats":null,"previous_names":["ceramicstudio/eigentrust-orbis-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicstudio%2Feigentrust-orbis-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicstudio%2Feigentrust-orbis-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicstudio%2Feigentrust-orbis-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicstudio%2Feigentrust-orbis-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceramicstudio","download_url":"https://codeload.github.com/ceramicstudio/eigentrust-orbis-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404190,"owners_count":19957650,"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":[],"created_at":"2024-11-13T02:42:46.585Z","updated_at":"2025-03-01T17:41:11.769Z","avatar_url":"https://github.com/ceramicstudio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agent Reputation Example using EigenTrust and OrbisDB\n\nThis demo emulates the following flow:\n\n1. OrbisDB to store peer-to-peer trust assertions agents are assigning each other\n2. EigenTrust (using the OpenRank SDK) to calculate global trust scores across the network of agents\n\nIn short, this shows how AI agent networks can utilize Ceramic to allow individual autonomous agents to self-authenticate using dedicated private keys, write peer rating assertions for other agents given their performance across arbitrary data points (like \"accuracy\") to save on Ceramic, and use OpenRank (using the EigenTrust algorithm) to consume those data points and calculate global trust scores.\n\n## Getting Started\n\n1. First, install the dependencies:\n\n```\nyarn install\n```\n\n2. Second, make a copy of the [.env.example](.env.example) file, rename it to `.env` and update the values accordingly:\n\n```bash\ncp .env.example .env\n```\n\n3. Create a WalletConnect project ID by visiting https://cloud.walletconnect.com/sign-in, create a new project (with a name of your choosing and the `App` type selected), and copy the `Project ID` key once available. \n\nOnce copied, assign it to `NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID` in your new .env file\n\n4. Visit the [Orbis Studio](https://studio.useorbis.com/) and create a free account if you do not already have one. \n\nFirst, set up a new context (required to use a shared instance). You can call it whatever you like. Assign the resulting string value (starting with \"k\") to `NEXT_PUBLIC_CONTEXT_ID` in your .env file.\n\nNext, copy the value you see under \"Environment ID\" and assign it to `NEXT_PUBLIC_ENV_ID` in your .env file.\n\nFinally, run the following to generate random private seeds that your agents will use to self-authenticate onto the network and write data:\n\n```bash\nyarn generate\n```\n\nYou should see the seed strings appear in your console. Copy each string and assign it to the remaining missing variables. For example, the value for `news_agent` should be assigned to `NEWS_AGENT_SEED` in your .env file, and so on.\n\n5. A schema has already been created for you for this demo and left as a default value in your .env file (assigned to `NEXT_PUBLIC_ASSERTION_TABLE`), so no action is needed here. For reference, you can view the [JSON definition](definition.json) and a sample [deploy script](example-deployscript.ts) showing how to deploy complex definitions using the OrbisDB SDK.\n\n6. You will need to start up your Python server next:\n\n```bash\n# first create and activate a virtual environment\ncd server\npython3 -m venv myenv\nsource myenv/bin/activate\n\n# install deps\npip install -r requirements.txt\n\n# start server\npython3 server.py \n\n```\n\n7. Finally, in a new terminal, run the NextJS app:\n\n```\nyarn dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n## Learn More\n\nTo learn more about OrbisDB please visit the following links\n\n- [OrbisDB Overview](https://developers.ceramic.network/docs/orbisdb/overview) \n- [OrbisDB SDK](https://developers.ceramic.network/docs/orbisdb/orbisdb-sdk) \n- [OrbisDB Website](https://useorbis.com/) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramicstudio%2Feigentrust-orbis-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceramicstudio%2Feigentrust-orbis-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramicstudio%2Feigentrust-orbis-example/lists"}